带print函数的python重定向stdout,是否可以扩展到多个输出,时间是什么?

2024-04-25 21:41:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经阅读了几个关于如何使用print函数通过重定向标准输出在文件上写入的问题。我发现它可能对日志记录有用(日志记录模块有时不方便),但我想知道是否有一种方法可以将输出发送到多个目的地。 基本上建议的解决方案是:

  1. sys.stdout=ff重新分配stdout看起来像一个文件
  2. 使用contextlib.redirect_stdout

所以每次代码something中都有一个print(something)f重定向。我在找这样的东西

redirect_stdout([sys.stdout,f])

它将每个something输出到文件f和通常的输出。你知道吗

另外,打印输出的定时是什么(意味着是否有 多个print语句,何时在f和stdout上刷新内容,如果有错误怎么办?)?你知道吗

我做了一些调查,但找不到解决办法,所以我认为这超出了我的知识范围。你知道吗


Tags: 模块文件方法函数标准stdoutsys记录
1条回答
网友
1楼 · 发布于 2024-04-25 21:41:00

在Python-3中,内置的print函数已经有一个file关键字参数,用于将输出重定向到指定的文件。因此,将输出发送到多个目的地的简单方法是使用两个print语句。你知道吗

print(something)
print(something, file=f)

有关更深入的讨论,请参见this answer。你知道吗

相关问题 更多 >