在Python中使用with語句打開不存在的文件時,如何自動創建文件和目錄?

在Python中使用with語句打開不存在的文件時,如何自動創建文件和目錄?

python文件操作中,使用with語句打開不存在的文件可能會引發異常。本文介紹如何優雅地處理這種情況,自動創建所需文件和目錄。

處理文件不存在的情況需要考慮兩種可能性:文件本身不存在,或者文件所在的目錄不存在。 pathlib模塊提供了便捷的路徑操作方法。

假設目標文件路徑為./foo/bar/test.txt,以下代碼演示了如何自動創建文件和目錄:

from pathlib import Path  # 目標文件路徑 target_file = Path("./foo/bar/test.txt")  # 創建父目錄,如果不存在 target_file.parent.mkdir(parents=True, exist_ok=True)  # 創建文件,如果不存在,并寫入內容 target_file.touch()  # 創建空文件 with target_file.open("w") as f:     f.write("...")  # 或者直接寫入,如果文件已存在則覆蓋 target_file.write_text("...") #更簡潔的寫法

代碼首先使用target_file.parent獲取目標文件的父目錄路徑。mkdir(parents=True, exist_ok=True)方法創建父目錄,parents=True確保創建所有缺失的父目錄,exist_ok=True避免因目錄已存在而拋出異常。

立即學習Python免費學習筆記(深入)”;

然后,target_file.touch()創建空文件(如果不存在),或者更簡潔地使用target_file.write_text(“…”)直接寫入內容,如果文件已存在則覆蓋。 with target_file.open(“w”) as f: 語句則以寫入模式打開文件,寫入指定內容。

這種方法有效地避免了文件不存在引發的異常,確保程序能夠順利運行。 避免使用r+模式,除非你明確需要讀寫現有文件,否則w模式或write_text()更安全可靠。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享