如何讓Python看起來,看看是否有需要的文件,如果沒有創建一個文件?如何讓Python檢查文件是否存在,如果不存在則創建它?
基本上我想讓Python查找我的文件名KEEP-IMPORTANT.txt
,但是當我使用py2app
創建我的應用程序時,它不起作用,因爲它沒有該文件。當我嘗試製作文件時,它不起作用(我認爲是因爲python必須生成它)。
我想讓Python檢查文件是否存在,以便如果它確實存在,那麼它不會生成文件,否則它會。
如何讓Python看起來,看看是否有需要的文件,如果沒有創建一個文件?如何讓Python檢查文件是否存在,如果不存在則創建它?
基本上我想讓Python查找我的文件名KEEP-IMPORTANT.txt
,但是當我使用py2app
創建我的應用程序時,它不起作用,因爲它沒有該文件。當我嘗試製作文件時,它不起作用(我認爲是因爲python必須生成它)。
我想讓Python檢查文件是否存在,以便如果它確實存在,那麼它不會生成文件,否則它會。
這是最好的辦法:
try:
with open(filename) as file:
# do whatever
except IOError:
# generate the file
還有os.path.exists(),但是這可能是一個安全問題。
我設計了一個例子來測試這種方法的缺陷。在python 2.7中,權限錯誤會引發IOError。我撤銷了測試文件的讀取權限,但允許寫入。試圖讀取文件產生了一個IOError,我可以用這個異常覆蓋它。這在python 3中不起作用,因爲讀取文件會產生PermissionError。這可能是一個不太可能發生的小衆情景。我想知道現有文件中IOError可能發生的其他方式。 – Octipi 2013-02-21 01:07:56
如果您沒有該文件的rw權限,是不是會試圖破壞它只是引發另一個IOError? – 2013-02-21 17:09:05
在Python 3中它會引發PermissionError。我測試了你有寫權限但不讀權限的不太可能的情況。在這種情況下,對於Python 2.7,讀取文件引發IOError,但我仍然可以使用寫入權限寫入該文件。 – Octipi 2013-02-21 23:01:05
這一行將檢查文件是否存在,如果不存在則創建它。
open("KEEP-IMPORTANT.txt", "a")
+1使它成爲文件並且沒有錯誤 - 但怎麼樣刪除文件的前幾位? – cutrightjm 2014-11-01 19:12:06
你想對文件做什麼?覆蓋它?閱讀?追加到它?都? – 2013-02-20 22:12:09
「當我嘗試創建文件時,它不起作用(我認爲是因爲python必須生成它)。」幾乎沒有。您應該添加更多詳細信息並顯示您擁有的相關代碼。 – 2013-02-20 22:12:47
該文件需要存在,全部爲 – user2093174 2013-02-20 23:18:56