Python - 打印到多个输出

Pio*_*zyk 5 python io python-2.7

可能重复:
如何将sys.stdout复制到python中的日志文件?

Python print命令或其他Python命令是否可以将字符串打印到两个目标?例如,我想在一个语句中打印到控制台和输出文件(这样我就不需要复制print语句).

我希望有一个Python 2.x的解决方案,如果这可能很重要.

geo*_*org 13

从理论上讲,你可以尝试这样的事情:

class Out(object):
    def write(self, s):
        sys.__stdout__.write(s)
        open('/tmp/log', 'a').write(s)

sys.stdout = Out()

...

print something # prints to stdout and logs
Run Code Online (Sandbox Code Playgroud)

但更简洁的方法是放弃print并只使用日志记录,因为这基本上就是你想要的.

  • 它应该在析构函数中自动关闭 (3认同)