我已经搜索过Google,Stack Overflow和我的Python用户指南,但找不到该问题的简单可行的答案。我在Windows 7 x64计算机上创建了文件c:\ goat.txt,并尝试将“测试”打印到该文件。我已经根据StackOverflow提供的示例尝试了以下方法:在这一点上,我不想使用日志模块,因为我从文档中不了解基于二进制条件创建简单的日志。打印很简单,但是如何重定向输出并不明显。我可以输入一个简单明了的例子对我的交易者最有帮助。此外,对于信息站点的任何建议也将受到赞赏(不提供pydocs)。import sysprint('test', file=open('C:\\goat.txt', 'w')) #failsprint(arg, file=open('fname', 'w')) # above based upon thisprint>>destination, argprint>> C:\\goat.txt, "test" # Fails based upon the above
3 回答

元芳怎么了
TA贡献1798条经验 获得超7个赞
如果您使用的是Python 2.5或更早版本,请打开文件,然后在重定向中使用文件对象:
log = open("c:\\goat.txt", "w")
print >>log, "test"
如果您使用的是Python 2.6或2.7,则可以将print作为函数使用:
from __future__ import print_function
log = open("c:\\goat.txt", "w")
print("test", file = log)
如果您使用的是Python 3.0或更高版本,则可以省略将来的导入。
如果要全局重定向打印语句,可以设置sys.stdout:
import sys
sys.stdout = open("c:\\goat.txt", "w")
print ("test sys.stdout")

杨魅力
TA贡献1811条经验 获得超6个赞
要重定向所有打印的输出,可以执行以下操作:
import sys
with open('c:\\goat.txt', 'w') as f:
sys.stdout = f
print "test"
添加回答
举报
0/150
提交
取消