python - 带有标准输入的 subprocess.run 不处理
问题描述
我正在尝试在 python 中运行命令:
from subprocess import run, DEVNULL
run(["./rarcrack",'walks.rar'], text=True, input='nano1 nano2', stdout=DEVNULL)
该命令似乎没有处理stdin
(它没有说更多的话,而在下面的示例中它说成功破解)。
我决定这样做是因为我的印象是:
- bash 管道重定向
stdout
到stdin
和 ./rarcrack
接受一个参数,stdin
因为类似的命令
echo 'nano1 nano2' | ./rarcrack walks.rar
有效。
而且我认为我不能将这些词作为另一个参数传递(我不知道任何 C)。
程序在这里
解决方案
问题是你丢弃了任何结果stdout=DEVNULL
。您只会看到错误输出,而不是成功。
推荐阅读
- php - PHP 7 是否有等价的 array_value_last()?
- tkinter - 我无法在 tkinter 的列表框中获取所选项目的索引值
- python - Panda 的 ExcelWriter 附加模式不起作用
- git - 如何在使用 git 命令行创建合并请求时传递目标分支
- kubernetes - 是否有在 kubernetes 中创建守护程序集的命令式命令?
- python - lru_cache 上的 Python 3 脚本崩溃
- python-3.x - 使用 Selenium 将浏览器窗口大小调整为屏幕的 50%
- python-3.x - 鼻子单元测试发现在python 3.8上被打破
- c++ - Qt3D QAbstractTextureImage 像素化
- svg - 如何在工具栏中放置svg图标