sar*_*ara 20 python linux rmdir python-2.7
我想从dataset3文件夹中删除dataset文件夹.但是以下代码不会删除数据集.首先,我想检查数据集中是否已存在数据集,然后删除数据集.
有人可以在下面的代码中指出我的错误吗?
for files in os.listdir("dataset3"):
if os.path.exists("dataset"):
os.system("rm -rf "+"dataset")
Run Code Online (Sandbox Code Playgroud)
mar*_*eau 27
os.rmdir()
只有当目录为空时才会起作用,但是下面的内容并不关心(即使有子目录).它比使用os.system()
和rm
命令更便携.
import os
import shutil
dirpath = os.path.join('dataset3', 'dataset')
if os.path.exists(dirpath) and os.path.isdir(dirpath):
shutil.rmtree(dirpath)
Run Code Online (Sandbox Code Playgroud)
Hua*_*Hao 11
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")
Run Code Online (Sandbox Code Playgroud)
最好设置ignore_errors
:
import shutil
shutil.rmtree('/folder_name', ignore_errors=True)
Run Code Online (Sandbox Code Playgroud)
这更具可读性和简洁性。
请注意,它将忽略所有错误,而不仅仅是 dir 丢失的错误。
这将做到这一点:
for files in os.listdir('dataset3'):
if files == 'dataset':
os.rmdir(os.path.join(os.getcwd() + 'dataset3', files))
Run Code Online (Sandbox Code Playgroud)