python - 如何使用输入重定向制作执行 python 文件(而不是本身)的代码?
问题描述
我想让 call.py 使用 input.txt 的输入重定向执行 main.py。
除此之外,我不想更改 main.py 的代码。
我想做的如下所示。
调用.py
exec(open("./main.py").read() < input.txt)
我当然知道这段代码不起作用。
主文件
name=input()
x=int(input())
print(name +" has chosen "+str(x)+".")
输入.txt
Alice
2
请给我建议。
解决方案
您可以为此使用该subprocess
模块。示例用法如下所示。
在call.py 中:
proc = subprocess.Popen(“main.py input.txt”,stdout = subprocess.PIPE,stderr = subprocess.PIPE)
在main.py中你所要做的就是使用模块读取input.txt的内容。要从命令行sys
获取input.txtsys.argv[1]
,请使用.
推荐阅读
- python - 有什么办法可以在python中加入下面提到的两个数据表
- pentaho - SQL Server Native Connection 未按预期实际连接
- r - 使用不同的公式计算 R 中 data.table 中的列
- c - 从不同的进程服务器写入客户端
- google-cloud-platform - 使用 GC Talent Solution 创建新配置文件时出现配额超出错误
- visual-studio - Visual Studio 在选定的构建配置上覆盖文件
- c - 如何使用 dtrace 查看读写调用(包括 \n 等隐藏字符)
- mysql - MySQL ORDER BY TOP 20,然后将所有剩余结果汇总在一行中
- php - 如何将数据传递给 Laravel 中的视图
- c++ - std::inner_product 计算向量的标准差