添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在Windows中使用pexpect.popen_spawn.PopenSpawn()来运行一个telnet实例

0 人关注

有没有人在Windows中运行pexpect.popen_spawn.PopenSpawn()来运行telnet的运气?

请注意,我已经启用了Windows中的 "Telnet客户端 "功能,因为我只需在命令行中输入'telnet',就能从命令行中正常运行 "telnet"。

import sys
import pexpect
from pexpect.popen_spawn import PopenSpawn
EXPECTED_PROMPT = "> "
def test():
    telnet_port=4444
    if sys.platform.startswith('win'):
        telnet = pexpect.popen_spawn.PopenSpawn(
            "C:\Windows\System32\telnet localhost {}".format(telnet_port),
            timeout=120,
            logfile=sys.stdout)
        telnet.expect(EXPECTED_PROMPT)
    return telnet
if __name__ == "__main__":
    telnet = test()

当我尝试运行上面的代码时,我得到以下错误。

Traceback (most recent call last):
  File ".\test.py", line 26, in <module>
  telnet = test()
File ".\test.py", line 20, in test
  logfile=sys.stdout)
File "C:\Python27\lib\site-packages\pexpect\popen_spawn.py", line 53, in 
__init__
    self.proc = subprocess.Popen(cmd, **kwargs)
    File "C:\Python27\lib\subprocess.py", line 394, in __init__
    errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 644, in _execute_child
startupinfo)
WindowsError: [Error 5] Access is denied
    
1 个评论
"C:\Windows\System32\telnet localhost {}" 不是一个原始字符串,所以 "\t" 是一个制表符,这当然不是你想要的,而且它在微软的文件系统中也是一个无效的文件名字符(但不是所有的Windows文件系统,如VirtualBox共享文件夹)。
python
linux
windows
trialUser
trialUser
发布于 2018-12-21
1 个回答
trialUser
trialUser
发布于 2018-12-22
已采纳
0 人赞同

通过使用plink解决了这个问题。 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

C:\Windows\System32\telnet localhost {}