我已經定義在我class foo
的__str__
和__repr__
當我print foo()
,它工作得很好。
當然,將stdout重定義爲file
對象並調用print foo()
會將字符串表示形式寫入文件,但這是否是最Python的方法?
寫入字符串表示到文件
回答
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塊短得多:
如果您正在使用Python 2.7,你可以暫時直接打印以這種方式到stdout:
>>> print >> open('test.txt', 'w'), 'test string'
如果您正在使用Python 3.3,你可以暫時直接打印以這種方式到stdout:
>>> print('test string', file=open('test.txt', 'w'))
這兩種方法都允許您臨時切換輸出。
由於deque的星圖部分SETATTR指出以下,在Python 2.7,你也可以暫時直接打印以這種方式到stdout:
>>> from __future__ import print_function
>>> print('test string', file=open('test.txt', 'w'))
第二種形式也可在Python 2與'從__future__進口print_function' – SingleNegationElimination
@deque星圖部分SETATTR好一點。 –
接受@thefourtheye的答案是因爲他提到了使用'with'時文件處理關閉的保證。如果在打印完成後手柄仍處於打開狀態,您將如何進行測試?沒有一種方法可以在不給名稱的情況下引用對象,對吧?也許'id'可以以某種方式使用 –
- 1. 文件寫入:字符串到字節
- 2. 字符串寫入到文件
- 3. C++:字符串寫入到文件
- 4. 寫入字符串到XML文件
- 5. 字符串writer寫入文本文件
- 6. 寫npgsqlexception字符串到文件不寫
- 7. Python字符串/列表符號£符號寫入文件失敗?
- 8. 在PHP文件中寫入字符串
- 9. 將一個字符串寫入文件
- 10. Python3:將字符串寫入.txt.bz2文件
- 11. C++寫入字符串文件
- 12. 字符串沒有寫入文件 - iPhone
- 13. 將字符串寫入文件
- 14. 將字符串數組寫入文件
- 15. 將字符串寫入文件from php
- 16. 將字符串寫入大量文件
- 17. 將字符串寫入C++文件(QT4)
- 18. 將字符串寫入文件
- 19. 將字符串寫入Unicode文件
- 20. Python:將JSON字符串寫入文件。
- 21. 將字符串寫入虛擬文件?
- 22. Android - 向文件中寫入字符串
- 23. 將字符串寫入特定字符串後的文件
- 24. 用字符串將映射文件寫入字符串
- 25. 使用換行符寫入字符串到文件
- 26. Arduino的寫入字符串到串行
- 27. 字符串寫入器不寫入文件
- 28. c將字符串寫入文件中,逐行寫入
- 29. 字符串寫入
- 30. 寫入特殊字符到txt文件
這是建議@jbarber建議的嗎?純粹出於好奇 –
我相信是這樣的。閱讀或寫作時,我不用擔心在使用'with'時關閉文件。 – thefourtheye