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