以下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中处理该部分。
awk '{print FILENAME " " $0}' progress.log > progress_temp.log
subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"])
ecbunoof1#
就你的目的而言,它可能是最容易使用的 os.system :
os.system
import os status = os.system("awk '{print FILENAME \" \" $0}' progress.log > progress_temp.log")
这样,shell将解析命令并为您处理重定向。返回值是退出状态(在unix上)
5lwkijsr2#
您可以指定 stdout 参数将输出保存到特定文件中:
stdout
import subprocess with open('progress_temp.log', 'w') as fw: subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"], stdout=fw)
2条答案
按热度按时间ecbunoof1#
就你的目的而言,它可能是最容易使用的
os.system
:这样,shell将解析命令并为您处理重定向。返回值是退出状态(在unix上)
5lwkijsr2#
您可以指定
stdout
参数将输出保存到特定文件中: