2013-08-30 62 views
3

如何使用os/app刪除文件(如果存在於python 2.7目錄中)?如何刪除存在的項目?

我試着

os.remove('directory/file.png') 

,但如果該項目不存在的,我得到了一個錯誤。

+1

你就不能忽略這個錯誤嗎? – pqnet

+0

我是的,用戶不,我已經解決了我的問題\t除了OSError或NameError: –

+0

'NameError'?爲什麼你會得到一個'NameError'?這表明你正在使用一個不存在的變量,這將表明你的代碼中存在一個錯誤。 – user2357112

回答

1
if os.path.exists(path): 
    os.remove(path) 
0

檢查是否存在第一:

if os.path.exists(path): 
    os.remove(path) 
+2

這是不鼓勵的,因爲該文件可能在檢查和實際移除之間被移除(例如,通過另一個進程),所以在競賽條件中將拋出異常並且未被捕獲 – pqnet

+0

@pqnet但是,除非您正在執行大規模並行性等,否則這是非常理論化的情況。 –

+0

since一個更安全的try/except模式存在(並且是在python中使用的鼓勵模式)我想棄用這個。另外,如果文件存在或不存在,OP不知道這一事實表明它可能在任何時候消失 – pqnet

7
try: 
    os.remove(path) 
except OSError: 
    pass 

剛剛捕獲錯誤並忽略它。 (忽略錯誤是不是你對所有錯誤做,但在這裏,這是你想要的。)

+0

請注意,正如python文檔所示(http://docs.python.org/2/library/ os.html#os.remove)如果路徑是一個目錄(或因爲文件無法刪除的其他原因),'os.remove'可能引發'OSError'異常,這可能是也可能不是你想要的。 – pqnet

0

使用的例外:

try: 
    os.remove("file_name") 
except: 
    return "something went wrong"