我想知道是否有任何方法可以调用python脚本并在另一个线程中完全启动该程序,因此主程序(调用者)不必等到被调用脚本完成执行。到目前为止,我已经尝试过subprocess和os.system,但这两个都延迟到脚本完成执行。
os.system('"F:\second.py"')
//continue the rest of the code without waiting for second.py to finish
//do stuff
答案 0 :(得分:2)
您可以尝试subprocess
first.py
import subprocess
subprocess.Popen(["python.exe", "second.py"])
print "done"
second.py
import time
for i in range(10):
print i
time.sleep(10)
编辑:
如果你想完全分离第一个和第二个脚本添加一个标志
first.py
import subprocess
subprocess.Popen(["python.exe", "second.py"], creationflags=subprocess.CREATE_NEW_CONSOLE)
print "done"
答案 1 :(得分:0)
如果您使用的是Unix计算机,则可以使用os.fork()
创建一个单独的进程,即使父进程已完成,该进程也将继续运行。例如:
<强> main.py 强>
import os
pid = os.fork()
if pid == 0: # pid is only equal to 0 in the child process
os.system('python second.py')
<强> second.py 强>
import time
time.sleep(2)
print("I'm a child process!")