我如何使代码执行python文件(而不是它本身)并带有输入重定向?

我如何使代码执行python文件(而不是它本身)并带有输入重定向?,python,input,io,io-redirection,Python,Input,Io,Io Redirection,我想使call.py执行main.py,输入重定向为input.txt 除此之外,我不想更改main.py的代码 我想做的事情如下 呼叫.py exec(open("./main.py").read() < input.txt) input.txt Alice 2 请给我建议。您可以使用子流程模块进行此操作。示例用法如下所示 在调用.py中: proc=subprocess.Popen(“main.py input.txt”,标准输出= subprocess.PIPE,stderr=s

我想使call.py执行main.py,输入重定向为input.txt

除此之外,我不想更改main.py的代码

我想做的事情如下

呼叫.py

exec(open("./main.py").read() < input.txt)
input.txt

Alice
2

请给我建议。

您可以使用
子流程
模块进行此操作。示例用法如下所示

在调用.py中:

proc=subprocess.Popen(“main.py input.txt”,标准输出= subprocess.PIPE,stderr=subprocess.PIPE)


main.py中,只需使用
sys
模块读取input.txt的内容即可。要从命令行获取input.txt,请使用sys.argv[1]

只需编写以下内容即可

os.system('main.py < input.txt')
os.system('main.py

我发布了一个愚蠢的问题。

很抱歉,问题中缺少信息。我不想更改main.py的代码。恐怕您无法通过call.py将input.txt的内容直接提供给main.py。这是处理两个不同的流:文件流和标准数据流。您不能将文本文件的内容“将来馈送”到另一个python脚本的stdin流。
os.system('main.py < input.txt')