将subprocess.run重定向到文件

问题描述 投票:2回答:1

我在这里看到过很多其他页面,它们将输出grep输出讨论到一个文件中,但是我似乎无法使这些工作中的任何一个起作用。

我有

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

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

grep -o searchfor filename >> outputfile.txt

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

python grep subprocess output
1个回答
1
投票

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

with open('outputfile.txt', 'w') as fd:
  subprocess.run(['grep', '-o', searchFor, filename], stdout=fd)
© www.soinside.com 2019 - 2024. All rights reserved.