[英]Python os.remove fails to remove
我想刪除文件如下:
path = "username/hw/01/"
file_list = ["main.cc", "makefile"]
files = os.listdir(path)
del_files = list(set(files) - set(file_list))
for del_file in del_files:
try:
os.remove(path + del_file)
except FileNotFoundError as e:
print("\t" + e.strerror)
except OSError as e:
print("\t" + e.strerror)
哪個不起作用。 如果我嘗試跑步
....
try:
os.remove(path + del_file)
os.remove(path + del_file)
except ...
異常觸發。 但是,如果使用 ls 或 nautilus 進行檢查,例如,文件仍然存在。
有效的是
files = os.listdir(path)
del_files = list(set(files) - set(file_list))
while (del_files):
for del_file in del_files:
try:
os.remove(path + del_file)
time.sleep(0.5)
print("\t\tRemoving " + path + del_file)
except FileNotFoundError as e:
print("\t" + e.strerror)
except OSError as e:
print("\t" + e.strerror)
files = os.listdir(path)
del_files = list(set(files) - set(file_list))
這是令人難以置信的丑陋。 當包含打印語句時,它將多次運行以獲取所有請求的文件。 我錯過了什么?
如果有關系,
$ python3 --version
Python 3.4.3
如果路徑不以路徑分隔符結尾,您可能需要使用os.remove(os.path.join(path, del_file))
而不是os.remove(path + del_file)
。 文檔: os.path.join()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.