0

我有两个 python 文件:“old.py”和“new.py”。我想使用 execfile("new.py") 从“old.py”执行“new.py”。但是,与其等待 'new.py' 完全完成其程序,然后再移动到 'old.py' 中的下一行,我希望两个脚本独立继续(即,'old.py' 移动到之后的行execfile('new.py') 命令立即执行。

例如,如果 'new.py' 需要 48 秒才能完整地完成其程序,并且 'old.py' 读取:

execfile("new.py")
print 2+2

我希望立即打印“4”,而不是 48 秒后打印。

你会如何建议这样做?

感谢您分享您的知识和专业知识。

4

1 回答 1

1

你想利用subprocess.Popen. 它将在单独的进程中打开一个进程。

# old.py - Make sure it's chmod +x
#!/usr/bin/python
import time

time.sleep(48)

# new.py 
#!/usr/bin/python
import subprocess

subprocess.Popen(["./old.py"])
print(2+2)

>>> python new.py 
4
>>> ps
  PID TTY          TIME CMD
 2495 pts/17   00:00:00 bash
 2696 pts/17   00:00:00 old.py
 2697 pts/17   00:00:00 ps
于 2015-10-10T07:34:26.230 回答