从另一个python脚本

时间:2018-03-16 17:57:30

标签: python-2.7

我有多个python脚本,每个脚本都有print语句和输入提示。我从一个python脚本运行这些脚本,如下所示。

os.system('python script1.py ' + sys.argv[1])
os.system('python script2.py ' + sys.argv[1]).....

运行成功完成,但是,当我从单个文件运行所有脚本时,我不再在运行控制台上看到任何打印语句或提示输入。已经研究并尝试了许多不同的方法来使这项工作成功。非常感谢帮助。感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想同步运行多个python脚本,即一个接一个地运行。

您可以使用bash脚本而不是python,但要回答从python启动它们的问题...

签出子流程模块:https://docs.python.org/3.4/library/subprocess.html

特别是call方法,它接受stdin和stdout,你可以将sys.stdin和sys.stdout传递给。

import sys
import subprocess

subprocess.call(['python', 'script1.py', sys.argv[1]], stdin=sys.stdin, stdout=sys.stdout)
subprocess.call(['python', 'script2.py', sys.argv[1]], stdin=sys.stdin, stdout=sys.stdout)

^ 这将在python 2.7和3中工作,另一种方法是通过导入文件(模块)并调用其中的方法。这里的区别在于您不再在单独的流程中运行代码。

subroutine.py

def run_subroutine():
    name = input('Enter a name: ')
    print(name)

master.py

import subroutine
subroutine.run_subroutine()