我需要一些帮助来开发一个python软件。基本上当它尝试做时:
os.system("commandHere usernameHere")
我需要它来回答要求输入密码的密码提示。不幸的是,密码不能作为第三个参数添加,我不知道如何处理这个问题。另外,另一个问题,我如何将终端的输出接收到我的 python 程序中?
谢谢!:)
使用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"yourPasswordn") # What you need to input
result = p.stdout.read() # The program's output
print(result)