以文件和终端标准输出python 2.7打印输出

以文件和终端标准输出python 2.7打印输出,python,python-2.7,printing,stdout,Python,Python 2.7,Printing,Stdout,为了将所有print字符串输出到文件中,我在python文件中添加了以下行: sys.stdout=open(logf,'wb') 这是我想要的,但也阻止了所有print字符串出现在终端中。是否有方法将标准输出配置为打印到两个目标?(我尽量避免为每次使用print都编写函数,因为函数太多,需要重写的地方也很多。此外,我也仔细阅读了几个类似的主题,但我没有找到一个简单的方法。) 此函数将为您执行此操作,使用而不是打印。您可以排除该行,只需执行python prog.py | tee filenam

为了将所有
print
字符串输出到文件中,我在python文件中添加了以下行:

sys.stdout=open(logf,'wb')

这是我想要的,但也阻止了所有
print
字符串出现在终端中。是否有方法将标准输出配置为打印到两个目标?(我尽量避免为每次使用
print
都编写函数,因为函数太多,需要重写的地方也很多。此外,我也仔细阅读了几个类似的主题,但我没有找到一个简单的方法。)


此函数将为您执行此操作,使用而不是打印。

您可以排除该行,只需执行
python prog.py | tee filename
为什么不使用日志模块?是否有“打印到终端”特定的语句或函数?例如,如果我有
print
去stdout,那么在这种情况下,我可以专门将一些东西打印到终端上吗?我从另一个问题上看到了这一点。我只是希望有另一种方法可以直接做到这一点,或者有一种方法可以改变stdout的行为。这一种也可以很好地工作:
def fprint(output):
    print output
    with open("somefile.txt", "a") as f:
        f.write("{}\n".format(output))