使用'with' 語句開啟多個檔案
在Python 處理檔案I/O 時,'with open()'語句提供了一種自動開啟和關閉文件的便捷方法。但是,如果您需要同時開啟多個文件,使用傳統方法可能會遇到限制。
在下面的程式碼中,我們有兩個檔案要使用:一個要讀取的輸入檔案“oldfile”,以及要寫入的輸出檔案“newfile”。
<code class="python">def filter(txt, oldfile, newfile): with open(oldfile, 'r', encoding='utf-8') as infile: with open(newfile, 'w') as outfile: # ...</code>
如您所見,我們必須嵌套「with」語句才能依序開啟檔案。如果在處理其中一個文件時發生異常,這可能會導致問題。
幸運的是,Python 提供了一個更有效的解決方案:在單一「with」語句中使用多個「open()」語句。這是透過用逗號分隔檔案來實現的:
<code class="python">def filter(txt, oldfile, newfile): with open(newfile, 'w') as outfile, open(oldfile, 'r', encoding='utf-8') as infile: # ...</code>
此語法允許您同時開啟兩個檔案並分別將它們作為「outfile」和「infile」存取。此外,當「with」區塊退出時,檔案將自動關閉,確保正確的資源管理。
這種方法簡化了程式碼並消除了嵌套「with」語句所造成的潛在問題。 Python 2.7 和 3.1 或更高版本支援它。對於較舊的 Python 版本,您可以使用 contextlib.nested 或像以前一樣繼續嵌套 'with' 語句。
以上是如何使用'with”語句同時開啟多個檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!