在第二个暂停时从另一个python脚本运行python脚本

时间:2014-09-09 15:29:45

标签: python

我有一个需要运行另一个脚本的pythons脚本。

来自 python_script_1.py:

的流量
run python_script_2.py
pause till python_script_2.py is done
continue python_script_1.py flow

由于

3 个答案:

答案 0 :(得分:0)

通常你想做的是类似的事情:

python_script_2.py

def func():
    print 'running python_script_2.func()'

python_script_1.py

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脚本的一些代码。如果您的代码中没有任何多线程管理(那么'顺序执行'),您可以这样做:

script1.py

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")

script2.py

def my_process():
    # do Stuff

答案 2 :(得分:0)

您可以尝试subprocess.Popen

例如:

您有script_1.pyscript_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导入代码。