如何制作通过输入重定向执行python文件(而非本身)的代码?

我想通过call.py进行输入重定向以执行main.py。

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

我想做的事情如下。

call.py

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

我当然知道这段代码不起作用。

main.py

name=input()
x=int(input())
print(name +" has chosen "+str(x)+".")

input.txt

Alice
2

请给我建议。

wuzheng96201 回答:如何制作通过输入重定向执行python文件(而非本身)的代码?

您可以为此使用subprocess模块。用法示例如下所示。

call.py 中:

  

proc = subprocess.Popen(“ main.py input.txt”,stdout =   subprocess.PIPE,stderr = subprocess.PIPE)

您需要在 main.py 中执行的所有操作都是通过使用sys模块读取 input.txt 的内容。要从命令行获取 input.txt ,请使用sys.argv[1]

,

只需在下面写即可。

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

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

本文链接:https://www.f2er.com/3147685.html

大家都在问