我的脚本有很多sys.exit()和raw_input()命令。 我想用无限循环包装它。 forever.py正在从Windows空闲运行。 像下面的代码,但它不起作用。 在一台机器python控制台窗口闪烁(无限循环启动进程python,它似乎合法),但我没有输出。 我能做得更好吗?
模块to_be_wrap.py:
import sys
def main():
print('start')
raw_input('any key')
sys.exit(0)
print('end')
模块forever.py:
import subprocess as subp
def forever():
while 1:
try:
cmd = ['python', 'to_be_wrap.py']
print subp.check_output(cmd)
except Exception as e:
print e
forever()
答案 0 :(得分:2)
这应该像预期的那样工作。请纠正这两件事:
sys.exit(0)
声明main()
。在文件末尾添加语句main()
。答案 1 :(得分:0)
您似乎正在创建类似于REPL(read-eval-print循环)的东西,尽管您的main()方法现在似乎没有做任何有用的事情。
This blog post描述了一种相当严格的方法。 This gist(上述博客文章的一部分)显示了REPL的“核心”,但是将read和eval逻辑的实现留给了你。