我有一个Python脚本,它在Unix机器上运行一些子进程命令。第一个月最后看起来像是subprocess.Popen(['docker', 'build', '.'])个我想在任意命令的每一行输出前添加一个时间戳。但是,这似乎不适用于子流程。有更好方法吗?
subprocess.Popen(['docker', 'build', '.'])
zy1mlcev1#
您可以使用pexpect为每行输出添加时间戳(或执行日志记录可以执行的任何操作):
pexpect
#! /usr/bin/env python import logging import pexpect logging.basicConfig(filename='ts.log', encoding='utf-8', format='%(asctime)s %(levelname)-8s %(message)s', level=logging.DEBUG) def run(cmd): logging.info(cmd) p = pexpect.spawn(cmd, encoding="utf-8") while l := p.readline(): logging.info(l.strip()) run("ls -l")
字符串
1条答案
按热度按时间zy1mlcev1#
您可以使用
pexpect
为每行输出添加时间戳(或执行日志记录可以执行的任何操作):字符串