我有多个python脚本,每个脚本都有print语句和输入提示。我从一个python脚本运行这些脚本,如下所示。
os.system('python script1.py ' + sys.argv[1])
os.system('python script2.py ' + sys.argv[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()