Python 程式碼的輸出重新導向
查詢的中心是使用 Python 將列印語句重新導向到指定的文字檔案。儘管採用了 sys.stdout 技術,目標檔案仍然為空。本文旨在探討此問題並提供替代解決方案。
利用檔案物件進行輸出
最直接的方法是直接寫入檔案物件:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f) # Python 3.x # print >> f, 'Filename:', filename # Python 2.x
重定向標準輸出
或者,可以使用以下程式碼實現標準輸出重定向:
import sys orig_stdout = sys.stdout f = open('out.txt', 'w') sys.stdout = f for i in range(2): print('i = ', i) sys.stdout = orig_stdout f.close()
使用標準庫上下文管理器
對於Python 3.4及以上版本,專用的上下文管理器可以簡化此操作程序:
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
外部輸出重新導向
透過 shell將輸出重新導向到外部是另一個可行的選項:
./script.py > out.txt
其他注意事項
以上是如何將 Python 的列印輸出重新導向到檔案以及為什麼會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!