Получение ошибок self.send, os.write и input / output при использовании pexpect - PullRequest
0 голосов
/ 16 апреля 2019

Я очень плохо знаком с python, и мне приходится работать со сценарием, в котором я должен открыть терминал, затем выполнить некоторые действия с ним, а затем открыть другие терминалы и выполнить действия.

Однако я запустил POC для него и обнаружил, что pexpect будет хорошим вариантом, и я сделал пример сценария, открывающего один терминал и выполняющего одно действие после смены каталога. Ниже приведен фрагмент кода:

import pexpect

command = 'cd abc/def/ghi'
t1 = pexpect.spawn(command)
t1.expect(pexpect.EOF)
t1.sendline("abcdapplication.exe -qazxsname afsa defg hijkl")
t1.expect(pexpect.EOF)

Я получаю ниже ошибки после выполнения кода на MacOS:

File "terminalBasicPOC.py", line 6, in <module>
    t1.sendline("abcdapplication.exe -qazxsname afsa defg hijkl")
  File "/usr/local/lib/python2.7/site-packages/pexpect/pty_spawn.py", line 577, in sendline
    return self.send(s + self.linesep)
  File "/usr/local/lib/python2.7/site-packages/pexpect/pty_spawn.py", line 568, in send
    return os.write(self.child_fd, b)
OSError: [Errno 5] Input/output error

Я пытался найти решение для той же самой проблемы, но нашел ниже открытые проблемы:

https://github.com/pexpect/pexpect/issues/435

https://github.com/pexpect/pexpect/issues/544

Пожалуйста, дайте мне знать, как решить эту ошибку.

...