2016-09-07 86 views

回答

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语句(或至少所有未使用特定的文件如上图所示的),你可以简单地替换sys.stdout你想要的文件。

sys.stdout = open("log.txt", "w") 
print "foo", "bar" # Goes to log.txt 

如果您需要它,原始标准输出仍可通过sys.__stdout__获得。

+0

非常感谢,好像我可以使用它!但目标不是重定向到文件,而是重定向到记录器。我怎样才能实现一个像对象一样的文件可以做到这一点?顺便说一下,我使用的是超级老版本的python,因为我正在编写必须使用wlst执行的脚本(WebLogic Language Scripting Tool) – Abbadon

+0

有两种选择是使用'logging'模块而不是'print'语句,或者使用'subprocess'打开一个管道到与记录器一起工作的外部命令。 (假设在2.2中可用)。 – chepner

+0

问题是我无法访问打印语句!我无法修改代码。我打电话使用打印语句的现有功能。 – Abbadon