我有一个将日志输出到文件的进程,并且我试图制作一个python脚本来运行该进程,并且仅将其生成的日志输出到该日志文件中。
我在下面写的内容似乎做了我想要的,除了一个大问题:它永远不会存在while循环。我已经尝试了其他一些运气不佳的选择。
这里的任何帮助将不胜感激!我想值得一提的是,我也可以改用节点脚本...
import subprocess
import sh
process = subprocess.Popen(cmd)
log_tail = sh.tail("-f", log_file, _iter=True)
while process.returncode is None:
sys.stdout.write(log_tail.next())
sys.stdout.flush()
process.poll()
答案 0 :(得分:0)
tail -f
命令将一直运行到明确中断为止,这就是为什么循环永远不会退出的原因。您可以尝试以下方法:
import subprocess
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
,它将等到cmd
终止并返回其在stdout
和stderr
中的输出流的内容。