1

我有两个已定义的函数,foo它们bar运行pexpect时使用pexpect.spawn. 接下来它只是使用 pexpect 发送一个 control-csendcontrolclose告诉正在运行的脚本关闭,然后终止该对象。程序运行后,对象仍在内存中运行,看起来像 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正确,但对我的对象没有做任何事情

4

1 回答 1

0

我认为我的问题是我的 .PY 文件中的缩进被一个字符关闭了

于 2012-12-30T23:42:48.597 回答