2013-02-20 76 views
6

如何讓Python看起來,看看是否有需要的文件,如果沒有創建一個文件?如何讓Python檢查文件是否存在,如果不存在則創建它?

基本上我想讓Python查找我的文件名KEEP-IMPORTANT.txt,但是當我使用py2app創建我的應用程序時,它不起作用,因爲它沒有該文件。當我嘗試製作文件時,它不起作用(我認爲是因爲python必須生成它)。

我想讓Python檢查文件是否存在,以便如果它確實存在,那麼它不會生成文件,否則它會。

+0

你想對文件做什麼?覆蓋它?閱讀?追加到它?都? – 2013-02-20 22:12:09

+2

「當我嘗試創建文件時,它不起作用(我認爲是因爲python必須生成它)。」幾乎沒有。您應該添加更多詳細信息並顯示您擁有的相關代碼。 – 2013-02-20 22:12:47

+0

該文件需要存在,全部爲 – user2093174 2013-02-20 23:18:56

回答

7

Similar question

這是最好的辦法:

try: 
    with open(filename) as file: 
     # do whatever 
except IOError: 
    # generate the file 

還有os.path.exists(),但是這可能是一個安全問題。

+0

我設計了一個例子來測試這種方法的缺陷。在python 2.7中,權限錯誤會引發IOError。我撤銷了測試文件的讀取權限,但允許寫入。試圖讀取文件產生了一個IOError,我可以用這個異常覆蓋它。這在python 3中不起作用,因爲讀取文件會產生PermissionError。這可能是一個不太可能發生的小衆情景。我想知道現有文件中IOError可能發生的其他方式。 – Octipi 2013-02-21 01:07:56

+0

如果您沒有該文件的rw權限,是不是會試圖破壞它只是引發另一個IOError? – 2013-02-21 17:09:05

+0

在Python 3中它會引發PermissionError。我測試了你有寫權限但不讀權限的不太可能的情況。在這種情況下,對於Python 2.7,讀取文件引發IOError,但我仍然可以使用寫入權限寫入該文件。 – Octipi 2013-02-21 23:01:05

7

這一行將檢查文件是否存在,如果不存在則創建它。

open("KEEP-IMPORTANT.txt", "a") 
+0

+1使它成爲文件並且沒有錯誤 - 但怎麼樣刪除文件的前幾位? – cutrightjm 2014-11-01 19:12:06

相關問題