Итак, я пытаюсь взаимодействовать с файлом .exe (tcpclient.exe), и документы pexpect показывают, что он идеален, поскольку мне нужно отправлять несколько входных данных и взаимодействовать с программой.
Но я даже не могу заставить работать следующий код
import wexpect
child = wexpect.spawn('dir')
print child
Я предполагаю, что любая переменная может быть напечатана() при условии, что функция действительна.
Ниже приведено сообщение об ошибке
Traceback (most recent call last):
File "test1.py", line 13, in <module>
child = wexpect.spawn('dir')
File "C:\pytest\wexpect.py", line 279, in spawn
return spawn_windows(command, args, timeout, maxread, searchwindowsize, logfile, cwd, env)
File "C:\pytest\wexpect.py", line 1653, in __init__
self._spawn (command, args)
File "C:\pytest\wexpect.py", line 1698, in _spawn
raise ExceptionPexpect ('The command was not found or was not executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: dir.
Я использую WindowsXP. У меня установлен MinGW и Python 2.7. Я использую wexpect через пакет pywin32.
pywin32-217.win32-py2.7.exe, которое было именем установочного .exe.
Мой путь к Python установлен как C:\Python27\. Я попытался установить его на C:\Python27\bin, как кто-то упомянул, но после этого я не смог выполнить python. Я просмотрел исходный код для wexpect, и там есть функция «what ()», которая возвращает «None» на свой вход «dir». Я не смог изменить ее, чтобы она работала иначе.
Пожалуйста, скажите мне, что я сделал неправильно.
Заранее спасибо.
dir
— это внутренняя команда. Возможно,wexpect
не запускаетcmd.exe
по умолчанию. Что произойдет, если вы запустите'cmd /c dir'
вместо этого? - person jfs   schedule 02.03.2015import subprocess; subprocess.check_call('cmd /c dir')
? - person jfs   schedule 02.03.2015'.exe'
), в wexpect:r'c:\Windows\...'
. Вы также можете попробовать модуль winpexpect. Хотя оба модуля, насколько я помню, не поддерживаются — попробуйте найти более новую версию на bitbucket или github. - person jfs   schedule 02.03.2015