从python执行awk(将输出重定向到文件)

jjjwad0x  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(421)

以下awk命令将文件名附加到日志文件的每一行 awk '{print FILENAME " " $0}' progress.log > progress_temp.log 如何从python执行这个awk命令
能够执行以下命令 subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"]) 但它不会将输出重定向到progress\u temp.log,也不想在python中处理该部分。

ecbunoof

ecbunoof1#

就你的目的而言,它可能是最容易使用的 os.system :

import os

status = os.system("awk '{print FILENAME  \" \"   $0}' progress.log > progress_temp.log")

这样,shell将解析命令并为您处理重定向。返回值是退出状态(在unix上)

5lwkijsr

5lwkijsr2#

您可以指定 stdout 参数将输出保存到特定文件中:

import subprocess
with open('progress_temp.log', 'w') as fw:
    subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"], stdout=fw)

相关问题