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
112
113
114
115
|
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 :class:`spawn` in bytes mode, the log files should be open for
writing binary data. In unicode mode, they should
be open for writing unicode text. See :ref:`unicode`.
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
````````````````
By default, :class:`spawn` is a bytes interface: its read methods return bytes,
and its write/send and expect methods expect bytes. If you pass the *encoding*
parameter to the constructor, it will instead act as a unicode interface:
strings you send will be encoded using that encoding, and bytes received will
be decoded before returning them to you. In this mode, patterns for
:meth:`~spawn.expect` and :meth:`~spawn.expect_exact` should also be unicode.
.. versionchanged:: 4.0
:class:`spawn` provides both the bytes and unicode interfaces. In Pexpect
3.x, the unicode interface was provided by a separate ``spawnu`` class.
For backwards compatibility, some Unicode is allowed in bytes mode: the
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.
.. note::
Unicode handling with pexpect works the same way on Python 2 and 3, despite
the difference in names. I.e.:
- Bytes mode works with ``str`` on Python 2, and :class:`bytes` on Python 3,
- Unicode mode works with ``unicode`` on Python 2, and :class:`str` on Python 3.
run function
------------
.. autofunction:: run
Exceptions
----------
.. autoclass:: EOF
.. autoclass:: TIMEOUT
.. autoclass:: ExceptionPexpect
Utility functions
-----------------
.. autofunction:: which
.. autofunction:: split_command_line
|