2016-12-16 143 views
2

我試圖在Windows上使用pexpect.popen_spawn.PopenSpawn打開telnet連接,因爲pexpect.spawn僅在Linux平臺上可用。我已經在Linux上用pexpect.spawn測試了相同的python腳本,並且它工作正常。但是,我無法在Windows上使用pexpect.popen_spawn.PopenSpawn打開telnet。以下錯誤WindowsError:[錯誤2]系統找不到pexpect.popen_spawn.PopenSpawn中指定的文件

console = popen_spawn.PopenSpawn(mycommand) 
    File "C:\Python27\lib\site-packages\pexpect\popen_spawn.py", line 45, in __ini 
t__ 
    self.proc = subprocess.Popen(cmd, **kwargs) 
    File "C:\Python27\lib\subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 958, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 

pexpect.popen_spawn.PopenSpawn("C:/Windows/System32/telnet.exe <IP> <PORT>")顯示現在TELNET.EXE可在C:/在Windows/System32下,我已經成功地測試了使用上的命令提示符下的Telnet相同的命令。我究竟做錯了什麼?任何想法?我正在使用python 2.7

+0

print os.environ ['COMSPEC']打印爲C:\ windows \ system32 \ cmd.exe –

回答

1

Pexpect似乎不喜歡路徑中的反斜槓!例如試試這個:

mycommand = mycommand.replace("\\", "/") 
console = popen_spawn.PopenSpawn(mycommand) 

(僅限於Windows的問題)

0

考慮使用你的命令執行的絕對路徑。 要找出telnet所在的位置,請在cmd.exe中運行以下命令:其中,telnet和那應該爲您提供絕對路徑。

後來乾脆:

popen_spawn.PopenSpawn( 'C:/在Windows/System32下/遠程登錄***')

相關問題