将 subprocess.run 输出重定向到文件

Redirect subprocess.run output to file

我在这里看到很多其他页面都在讨论将 grep 输出输出到文件,但我似乎无法使这些工作正常进行。

我有

subprocess.run(['grep', '-o', searchFor, filename])

如果这不是子流程,我会使用类似

的东西
grep -o searchfor filename >> outputfile.txt

并且当我尝试在子进程中使用 >>> 或任何其他内容时,我无法将其输出到简单的 txt 文件。我认为这是因为与我在子进程 中尝试相比,我在这里看到的大多数页面都是从 常规命令写入文件的。我的猜测是我的语法错误。 >>> 或我应该使用的任何东西应该去哪里?我试过 ] 之后和之前以及许多其他组合。

以写入(>)或追加(>>)模式打开文件,并在subprocess.run调用中将与其关联的描述符分配给stdout

with open('outputfile.txt', 'w') as fd:
  subprocess.run(['grep', '-o', searchFor, filename], stdout=fd)