我已经在我的
When I中定义了__str__
and ,它工作得很好。
当然,将 stdout 重新定义为对象并调用会将字符串表示形式写入文件,但这是最 Pythonic 的方式吗?__repr__
class foo
print foo()
file
print foo()
问问题
2322 次
3 回答
4
with open("Output.txt", "w") as outputFile:
print >>outputFile, foo()
Python 文档推荐使用with
,在本节http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects
在处理文件对象时,最好使用 with 关键字。这样做的好处是文件在其套件完成后正确关闭,即使在途中引发异常也是如此。它也比编写等效的 try-finally 块短得多:
于 2013-10-12T03:19:09.377 回答
2
如果您使用的是 Python 2.7,您可以以这种方式临时将您的打印定向到标准输出:
>>> print >> open('test.txt', 'w'), 'test string'
如果您使用的是 Python 3.3,您可以以这种方式临时将您的打印定向到标准输出:
>>> print('test string', file=open('test.txt', 'w'))
这两种方法都允许您临时切换输出。
正如 deque starmap partial setattr 在下面指出的那样,在 Python 2.7 中,您还可以以这种方式临时将打印定向到标准输出:
>>> from __future__ import print_function
>>> print('test string', file=open('test.txt', 'w'))
于 2013-10-12T03:17:37.917 回答