我想從dataset3文件夾中刪除數據集文件夾。但是下面的代碼不會刪除數據集。 首先,我想檢查數據集中是否已經存在數據集,然後刪除數據集。
有人可以在下面的代碼中指出我的錯誤嗎?如何檢查文件夾的存在,然後將其刪除?
for files in os.listdir("dataset3"):
if os.path.exists("dataset"):
os.system("rm -rf "+"dataset")
我想從dataset3文件夾中刪除數據集文件夾。但是下面的代碼不會刪除數據集。 首先,我想檢查數據集中是否已經存在數據集,然後刪除數據集。
有人可以在下面的代碼中指出我的錯誤嗎?如何檢查文件夾的存在,然後將其刪除?
for files in os.listdir("dataset3"):
if os.path.exists("dataset"):
os.system("rm -rf "+"dataset")
這將做到這一點:
for files in os.listdir('dataset3'):
if files == 'dataset':
os.rmdir(os.path.join(os.getcwd() + 'dataset3', files))
對於'os.path.join()',您不需要/不需要包含前導斜槓在''/ dataset3''中。 – martineau
@馬蒂奧修好了! –
os.remove()
是刪除一個文件。
os.rmdir()
是刪除空目錄。
shutil.rmtree()
是刪除一個目錄及其所有內容。
import os
folder = "dataset3/"
# Method 1
for files in os.listdir(folder):
if files == "dataset":
os.remove(folder + "dataset")
# Method 2
if os.path.exists(folder + "dataset"):
os.remove(folder + "dataset")
試試這個:
for files in os.listdir("dataset3"):
if files=="dataset":
fn=os.path.join("dataset3", files)
os.system("rm -rf "+fn)
break
你不需要os.path.exists(),因爲os.listdir()已經告訴你,它的存在。
如果你的foldernames是靜態的,你可以做到這一點:
if os.path.exists("dataset3/dataset"):
os.system("rm -rf dataset3/dataset")
或爲:
try:
os.system("rm -rf dataset3/dataset")
except:
pass
如果該目錄爲空os.rmdir()
只會工作,但下面不照顧(即使有子目錄)。它比使用os.system()
和rm
命令更便於攜帶。
import shutil
import os
dirpath = os.path.join('dataset3', 'dataset')
if os.path.exists(dirpath) and os.path.isdir(dirpath):
shutil.rmtree(dirpath)
@HFBrowning - 對目錄來說不是太有效。 – tdelaney
你不使用'files'文件名,即使你做了,你也需要添加原始路徑('dataset3')。 – tdelaney
那我該怎麼做呢 – sara