Python 2.7 当从另一个python脚本运行一个python脚本时,如何输出到命令行

Python 2.7 当从另一个python脚本运行一个python脚本时,如何输出到命令行,python-2.7,Python 2.7,我有多个python脚本,每个脚本都有打印语句和输入提示。我从一个python脚本运行这些脚本,如下所示 os.system('python script1.py ' + sys.argv[1]) os.system('python script2.py ' + sys.argv[1])..... 运行已成功完成,但是,当我从单个文件运行所有脚本时,在运行控制台上不再看到任何打印语句或输入提示。我们已经研究并尝试了许多不同的方法来实现这一目标,但没有成功。非常感谢您的帮助。谢谢。如果我理解正确

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

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

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

如果我理解正确,您希望同步运行多个python脚本,即一个接一个

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

签出子流程模块:

特别是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)
^ 这将在Python2.7和3中工作,另一种方法是导入文件(模块)并调用其中的方法。这里的区别是,您不再在单独的进程中运行代码

子程序.py

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

import subroutine
subroutine.run_subroutine()

谢谢你的回复。我尝试使用subprocess.call运行您的建议,但收到一条错误消息,指出:“不支持的操作:IOStream没有文件否”试图通过python文档和其他帮助解决此问题,但无效。作为python新手,我不清楚错误的来源。我也尝试了波本和其他选择。但是,将其作为shell脚本运行会提供所需的输出。但是,我需要它在python中工作。我使用的是Spyder,它在python3和Python2.7上工作,我不熟悉Spyder。你也可以导入你的文件并执行其中的方法,我会更新它的工作原理。感谢Steve的帮助。你的建议很有帮助,但对于Spyder来说,方法是个问题。我最终使用了一个kornshell仿真器,它起了作用。