首页 > 解决方案 > 带有标准输入的 subprocess.run 不处理

问题描述

我正在尝试在 python 中运行命令:

from subprocess import run, DEVNULL
run(["./rarcrack",'walks.rar'], text=True, input='nano1 nano2', stdout=DEVNULL)

该命令似乎没有处理stdin(它没有说更多的话,而在下面的示例中它说成功破解)。

我决定这样做是因为我的印象是:

  1. bash 管道重定向stdoutstdin
  2. ./rarcrack接受一个参数,stdin因为类似的命令
    echo 'nano1 nano2' | ./rarcrack walks.rar有效。

而且我认为我不能将这些词作为另一个参数传递(我不知道任何 C)。

程序在这里

标签: pythonsubprocess

解决方案


问题是你丢弃了任何结果stdout=DEVNULL。您只会看到错误输出,而不是成功。


推荐阅读