【发布时间】:2019-10-16 02:26:48
【问题描述】:
我有一个可以进行大量打印的功能。我希望这些到标准输出以及到一个文件,所以我目前必须复制每个打印:一次用于标准输出,一次用于文件。
有没有一种方法可以打印到某些东西(不确定是什么!),我可以从函数返回并在调用脚本中使用两个打印语句简单地打印?
所以而不是:
def func():
print("1")
print("1",file=out.txt)
print("2")
print("2",file=out.txt)
print("3")
print("3",file=out.txt)
return()
我想要类似的东西:
def func2():
print("1", ???) ->string.out
print("2", ???) ->string.out
print("3", ???) ->string.out
(or some such?)
return(string.out)
func2()
print(string.out)
print(string.out,file=out.txt)
我知道我可以通过将所有输出附加到字符串来以粗略的方式做到这一点,但这将涉及“打印”处理的大量格式(例如,使用模板)。
或者也许这就是答案——我只是看不出如何以一种简洁的 Python 风格来做到这一点。
【问题讨论】:
-
你为什么不直接使用
tee命令? -
我不认为我理解这个问题。为什么不能定义自己的
my_print函数,将相同的内容打印到标准输出和文件? -
所以基本上你想要的是控制台和文件同时输出?
-
您可以“重载”builtins.print。看这里:stackoverflow.com/questions/46658639/…
-
multiprint函数可以工作,但我正在寻找可以在主程序中打印的东西(出于各种原因)。