向其它文件提供输入并收集输出的程序

2024-03-29 05:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有什么方法可以让我创建一个程序,让它向另一个文件提供输入并收集输出?你知道吗

谷歌给我最好的就是这个。我试图重新创建(阅读:以某种未知的方式复制代码(阅读:暗中刺杀))

我得到了这个

import time
string="file.py"
process=subprocess.Popen(string,stdin=subprocess.PIPE,stdout=subprocess.PIPE);
process.stdin.write("3 5")
time.sleep(1)
print process.stdout.read()

它给了我错误

  File "D:\Pekerjaan non website\IO\reader.py", line 3, in <module>
    process=subprocess.Popen(string,stdin=subprocess.PIPE,stdout=subprocess.PIPE);
NameError: name 'subprocess' is not defined

有人能告诉我怎么创建那个程序吗。(

注:我对这类程序I/O或子进程一无所知

注意:这取决于你。你可以从我的代码中解释,或者扔掉我的代码,从零开始解释。你知道吗

事先谢谢你。你知道吗

(附言:如果我之前的说法令人困惑。我的观点很简单:你能教我吗?:))


Tags: 文件方法代码pyimport程序stringtime
2条回答

subprocess是您需要导入的stdlib模块(与time的方式相同),因此您只需要:

import subprocess

在您尝试使用其中的函数之前的一段时间(通常,您希望在靠近代码顶部的地方,在当前的import time下面执行此操作)。你知道吗

除了lvc的答案之外,您还应该考虑使用Popen.communicate()。比如说

import subprocess
string="file.py"
process=subprocess.Popen(string,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
res=process.communicate("3 5")
print res[0]

这样你就不用睡觉了命令.it'将等待进程终止并返回元组(stdoutdata,stderdata)。你知道吗

相关问题 更多 >