我需要一些帮助来开发一个python软件。基本上当它试图做:
os.system("commandHere usernameHere")
我需要它来回答要求输入密码的密码提示。不幸的是,密码不能作为第三个参数添加,我不知道如何处理它。另外,另一个问题是,如何从终端接收输出到我的python程序?
谢谢! :)
答案 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)