Python:为子进程提供输入

标签 python windows input subprocess pipe

我必须使用 python 脚本创建一个具有管理员权限的新进程。我在网上搜索了这个主题,发现我必须使用 runas 命令。对于此命令,我必须提供用户,并且在运行时,脚本将等待密码,我希望尽可能自动执行此操作。

这是我的代码:

import subprocess

p = subprocess.Popen(['runas', '/user:Armando', szCmdCommand], stdin = subprocess.PIPE)
p.stdin.write('password')

而不是 .write 我尝试了 p.communicate(input='password') 但它不起作用,因为它不写入密码。唯一发生的事情是脚本不等待输入。它会自动输入错误的密码并导致执行命令失败。

我可以做什么来解决这个问题?

最佳答案

需要输入密码的程序通常不会使用从标准输入 (stdin) 进行的简单读取来实现此目的,而是直接控制终端(如 source code of the getpass module 中所示)。

使用其他内容,例如:

关于Python:为子进程提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866765/

相关文章:

c++ - 解码 Opus 音频数据

python - Kivy文本输入: Chinese characters

python - 在 Flask 应用程序中开始使用 Celery 时出现 PicklingError

python - pandas DataFrame 按行和列过滤

c++ - 客户端计算机上必须安装什么才能运行 QT Quick 应用程序?

c++ - 我可以在 Windows 上调用 shell 命令并将此保存到字符串的输出吗?

python - 如何找到没有 return 语句的 Python 方法?

python - 使用 pyvbox 在 vi​​rtualbox 中恢复快照

c# - 如何匹配第一个单词?

c++ - 将 ifstream 的一部分读入字符串对象?