Python 调用pexpect.spawn时,生成的程序是否立即开始执行?
在调用Python 调用pexpect.spawn时,生成的程序是否立即开始执行?,python,pexpect,Python,Pexpect,在调用expect.spawn对象之前,expect(或interact,send等)对象是否处于非活动状态,或者调用的进程是否立即启动?例如: import pexpect process = pexpect.spawn("echo HELLO") print ("Process created? Or run?") process.expect("HELLO") 当出现print语句时,pexpect是否已经在后台运行echo命令,并且只是等待它返回,直到expect调用被处理?或者,在第
expect.spawn
对象之前,expect
(或interact
,send
等)对象是否处于非活动状态,或者调用的进程是否立即启动?例如:
import pexpect
process = pexpect.spawn("echo HELLO")
print ("Process created? Or run?")
process.expect("HELLO")
当出现print
语句时,pexpect
是否已经在后台运行echo命令,并且只是等待它返回,直到expect
调用被处理?或者,在第一次调用expect
或类似命令之前,没有发生任何事情(echo
没有运行)
欢呼当传递命令时,
pexpect.spawn()
分叉并立即调用该命令。您的示例中的echo命令应该已经运行了
这体现在:
这是构造函数。命令参数可以是
包括命令和该命令的任何参数。例如:
child = pexpect.spawn ('/usr/bin/ftp')
child = pexpect.spawn ('/usr/bin/ssh user@example.com')
child = pexpect.spawn ('ls -latr /tmp')
您还可以使用如下参数列表来构造它:
child = pexpect.spawn ('/usr/bin/ftp', [])
child = pexpect.spawn ('/usr/bin/ssh', ['user@example.com'])
child = pexpect.spawn ('ls', ['-latr', '/tmp'])
在此之后,子应用程序将被创建并准备就绪
跟我谈谈
我通过查看;构造函数调用\u spawn()
,其文档记录如下:
这将在子进程中启动给定的命令。这是所有问题的答案
用于pty的fork/exec类型。这由\uuuu init\uuuu
调用。如果args
为空,则将分析命令(在空格上拆分),并将
设置为已解析的参数