将 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)
我在这里看到很多其他页面都在讨论将 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)