我有两个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秒后。
你会如何推荐这样做?
感谢您分享您的知识和专长。
答案 0 :(得分: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