我有两个定义的函数foo
和bar
运行pexpect
,使用pexpect.spawn
从命令行调用脚本。接下来它只是使用pexpect的sendcontrol
和close
发送一个control-c来告诉它正在运行的脚本关闭,然后终止该对象。程序运行后,对象仍在内存中运行,看起来像control-c和/或child.close
从未到达foo()
该脚本应终止我的衍生对象,但if
中的bar(child)
逻辑似乎对foo()
中创建的对象没有任何影响
以下是代码:
def foo():
child = pexpect.spawn ('./script.sh')
return child
def bar(child):
if child.isalive():
child.sendcontrol('c')
child.close()
if child.isalive():
print 'Child did not exit gracefully.'
else:
print 'Child exited gracefully.'
a = foo()
bar(a)
程序总是通过打印“儿童优雅退出”结束,但让我的script.sh
在后台运行
此代码适用于:
def bar(child):
child.sendcontrol('c')
与foo()
中创建的对象进行正常交互但由于某种原因,我的if
逻辑的其他代码正确运行if
但对我的对象没有做任何事情
答案 0 :(得分:0)
我认为我的问题是我的.PY文件中的缩进被一个字符删除了