如何在Python 2.2中覆盖打印功能,以便能够将输出重定向到自定义记录器。
答案 0 :(得分:1)
我没有2.2的版本来检查(你为什么使用这么旧的版本?),但我怀疑以下内容对所有2.x都有效。
print
语句识别以>>
开头的第一个参数,以指示要写入的文件。
以下内容完全相同:
print "foo", "bar"
print >>sys.stdout, "foo", "bar"
因此,您可以指定任何file
对象作为目标文件。
f = open("log.txt", "w")
print >>f, "foo", "bar"
如果您想重定向每个 print
语句(或至少所有不使用特定文件的语句,如上所示),您只需替换{{ 1}}与您想要的文件。
sys.stdout
如果您需要,原始标准输出仍可通过sys.stdout = open("log.txt", "w")
print "foo", "bar" # Goes to log.txt
获得。