gpt4 book ai didi

Python-需要将控制台输出重定向到日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:19 26 4
gpt4 key购买 nike

我正在从我的 python 脚本中执行多个“make”文件。示例脚本如下:

print("Calling make file")

call(["make"])

输出将是:

Calling make file

Starting make

cd src && make distclean

make[1]: Entering directory '/home/tejas/WLANrepo/src/3rdparty/redis-stable/src' rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html (cd ../deps && make distclean)'

我希望将整个输出重定向到一个日志文件。我试过了:

class Logger(object):

def __init__(self):
self.terminal = sys.stdout
self.log = open("Buildexec_logfile.log", "a")

def write(self, message):
self.terminal.write(message)
self.log.write(message)

但这只会重定向那些在“打印”下的语句。但是被调用的 make 文件的输出没有被重定向。

Python:python 2.7,操作系统:CentOS

最佳答案

您需要重定向由 python 执行的进程的输出(在您的情况下,make)。请参阅 subprocess module 的文档尤其是其方法的重定向参数(stdin=...stdout=...stderr=...)。根据您的需要,您可以完全丢弃子进程输出(DEVNULL),或将其收集到 python 进程内的变量(PIPE)或将其发送到另一个流。

关于Python-需要将控制台输出重定向到日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32843884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com