终端

时间:2016-03-15 18:06:48

标签: python command-line terminal

我需要一些帮助来开发一个python软件。基本上当它试图做:

os.system("commandHere usernameHere")

我需要它来回答要求输入密码的密码提示。不幸的是,密码不能作为第三个参数添加,我不知道如何处理它。另外,另一个问题是,如何从终端接收输出到我的python程序?

谢谢! :)

1 个答案:

答案 0 :(得分:1)

您最好使用subprocess.Popen而不是os.system,因为它允许您向流程发送数据和从流程中读取数据。请注意,Popen采用命令和参数列表而不是带空格的字符串,因此["commandHere", "usernameHere"]而不是"commandHere usernameHere"。一旦Popen完成,我们就可以写入流程并从中读取输出,如下所示。

import subprocess

p = subprocess.Popen(["commandHere", "usernameHere"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(b"yourPassword\n")   # What you need to input
result = p.stdout.read()           # The program's output
print(result)