檢查一個資料夾是否存在,如果不存在就建立它
阿新 • • 發佈:2019-01-08
filename = "/my/directory/filename.txt"
dir = os.path.dirname(filename)
try:
os.stat(dir)
except:
os.mkdir(dir)
f = file(filename)
我忘記了os.path.exists
(多謝張三,李四,王五的提醒).下面是更改的:
def ensure_dir(f):
d = os.path.dirname(f)
if not os.path.exists(d):
os.makedirs(d)
有什麼"開啟"的標記可以自動的執行?
我看了倆答案都很好,但是都有一點缺陷,所以給出我的:
先試os.path.exists
,然後通過os.makedirs
來建立.
if not os.path.exists(directory):
os.makedirs(directory)
標註一下-如果一個檔案在呼叫os.path.exists
和os.makedirs
之間被建立了,將會出現一個OSError
.遺憾的是捕獲OSError
異常繼續進行並不是萬無一失的,它將會忽略像磁碟空間不足,沒有足夠許可權等一些其他造成檔案建立失敗的因素.
一個做法是捕獲OSError
異常並檢查返回的錯誤程式碼(前提是知道錯誤程式碼對應的是什麼).然而,還有另一種可能,第二次的os.path.exists
根據不同的應用,並行操作的危險或多或少的比其他因素危險.開發者必須在選擇開發環境的時候更多地瞭解特定的應用程式.