1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
Core pexpect components
=======================
.. automodule:: pexpect
spawn class
-----------
.. autoclass:: spawn
.. automethod:: __init__
.. automethod:: expect
.. automethod:: expect_exact
.. automethod:: expect_list
.. automethod:: compile_pattern_list
.. automethod:: send
.. automethod:: sendline
.. automethod:: write
.. automethod:: writelines
.. automethod:: sendcontrol
.. automethod:: sendeof
.. automethod:: sendintr
.. automethod:: read
.. automethod:: readline
.. automethod:: read_nonblocking
.. automethod:: eof
.. automethod:: interact
.. attribute:: logfile
logfile_read
logfile_send
Set these to a Python file object (or :data:`sys.stdout`) to log all
communication, data read from the child process, or data sent to the child
process.
.. note::
With a :class:`spawn` instance, the log files should be open for
writing binary data. With a :class:`spawnu` instance, they should
be open for writing unicode text.
Controlling the child process
`````````````````````````````
.. class:: spawn
.. automethod:: kill
.. automethod:: terminate
.. automethod:: isalive
.. automethod:: wait
.. automethod:: close
.. automethod:: getwinsize
.. automethod:: setwinsize
.. automethod:: getecho
.. automethod:: setecho
.. automethod:: waitnoecho
.. attribute:: pid
The process ID of the child process.
.. attribute:: child_fd
The file descriptor used to communicate with the child process.
.. _unicode:
Handling unicode
````````````````
For backwards compatibility, :class:`spawn` can handle some Unicode: its
send methods will encode arbitrary unicode as UTF-8 before sending it to the
child process, and its expect methods can accept ascii-only unicode strings.
However, for a proper unicode API to a subprocess, use this subclass:
.. autoclass:: spawnu
:show-inheritance:
There is also a :func:`runu` function, the unicode counterpart to :func:`run`.
.. note::
Unicode handling with pexpect works the same way on Python 2 and 3, despite
the difference in names. I.e.:
- :class:`spawn` works with ``str`` on Python 2, and :class:`bytes` on Python 3,
- :class:`spawnu` works with ``unicode`` on Python 2, and :class:`str` on Python 3.
run function
------------
.. autofunction:: run
.. autofunction:: runu
Exceptions
----------
.. autoclass:: EOF
.. autoclass:: TIMEOUT
.. autoclass:: ExceptionPexpect
Utility functions
-----------------
.. autofunction:: which
.. autofunction:: split_command_line
|