我试图通过python运行一个程序(可以完全通过命令行运行)。
程序将运行并等待输入。
我可以手动输入输入,但我试图通过python脚本输入输入来自动化该过程。我不需要知道输出来提供输入。输入是预定的。
这是我迄今为止所做的:
def enterProgram():
# p = subprocess.call(link, shell=True)
p = subprocess.Popen(link, shell=True, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
p.communicate()
p.stdin.write(querynew1)
此代码只运行程序并退出程序而不考虑我的输入。
请就如何解决此问题提出建议。感谢。
答案 0 :(得分:0)
应该这样做
proc = subprocess.Popen(link, shell=True, stdout=subprocess.PIPE)
print(proc.stdout.read())
答案 1 :(得分:0)
Popen.communicate()
将输入作为参数。如果您只需要提供一次输入,并且只需要输出一次输出,那么应该这样做:
def enterProgram():
p = subprocess.Popen(link, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
out, err = p.communicate(querynew1)
return out