在Python 中開啟多個檔案的上下文管理器
Python 的with open 語句透過在with 區塊退出時自動關閉檔案來有效管理文件操作。但是,如果您想要確保所有檔案都可以寫入,那麼使用連續的 with open 語句開啟多個檔案會帶來挑戰。
組合多個 open 語句
語法問題中提出的嘗試將 open 語句與 and 關鍵字結合起來是無效的。為了實現所需的功能,Python 2.7(或3.1)及更高版本引入了一項更改,允許您簡單地用逗號分隔多個with open 語句:
with open('a', 'w') as a, open('b', 'w') as b: do_something()
此語法正確管理多個檔案的上下文,當with 區塊退出時關閉它們。
Variable Number of 的替代方案文件
如果您可能需要開啟可變數量的文件,contextlib.ExitStack 類別提供了從 Python 3.3開始的解決方案:
with ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # Do something with "files"
順序與同時開啟檔案
需要注意的是,同時開啟多個檔案並不總是理想的。在大多數情況下,按順序處理文件是更常見的方法:
for fname in filenames: with open(fname) as f: # Process f
這種方法避免了與資源管理和文件鎖定相關的潛在問題。
以上是如何在 Python 中使用單一「with open」語句開啟多個檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!