我有一个需要运行另一个脚本的pythons脚本。
来自 python_script_1.py:
的流量run python_script_2.py
pause till python_script_2.py is done
continue python_script_1.py flow
由于
答案 0 :(得分:0)
通常你想做的是类似的事情:
def func():
print 'running python_script_2.func()'
import python_script_2
if __name__ == '__main__':
print 'before'
python_script_2.func()
print 'after'
输出
before
running python_script_2.func()
after
答案 1 :(得分:0)
您要做的是在主模块中执行第二个Python脚本的一些代码。如果您的代码中没有任何多线程管理(那么'顺序执行'),您可以这样做:
from script2 import my_process
if __name__ == '__main__':
print("Be prepared to call stuff from script2")
my_process()
print("Ok, now script2 has finished, we are back in script1")
def my_process():
# do Stuff
答案 2 :(得分:0)
您可以尝试subprocess.Popen。
例如:
您有script_1.py
和script_2.py
,并且您希望从第一个开始运行最后一个,所以您可以:
# script_1.py
import subprocess
p = subprocess.Popen(
['python', 'script_2.py'], # The command line.
stderr = subprocess.PIPE, # The error output pipe.
stdout = subprocess.PIPE, # The standar output pipe.
)
output, error = p.communicate() # This will block the execution(interpretation) of script_1 till
# script_2 ends.
当然,这是解决方案,如果出于某种原因,您无法从其他答案显示的script_2.py
导入代码。