是否可以在不使用特定路径的情况下删除文件夹中的所有文件夹?,在这里我先移动文件的内容,然后再删除它是否是目录
2018-08-25
答案 0 :(得分:5)
是的,请使用shutil的rmtree
方法。
import shutil
shutil.rmtree('directory') # the directory you want to remove
os.listdir()
您也可以使用os.rmdir
,但是如果其中包含任何内容,则无法使用。
如果要检查特定路径是否为目录,则可以使用os.path.isdir
,如果返回rmtree
,则运行TRUE
如果您想保持 root 文件夹不变,则可以walk
该目录并在每个项目上调用rmtree
。
答案 1 :(得分:1)
如@Vineeth Sai之前的建议,如果要删除目录中的所有子目录,只需使用os.listdir()
遍历每个文件,如果文件是目录,则应用shutil.rmtree()
:
from os import listdir
from os.path import abspath
from os.path import isdir
from os.path import join
from shutil import rmtree
path = 'YOUR PATH HERE'
for file in listdir(path):
full_path = join(abspath(path), file)
if isdir(full_path):
rmtree(full_path)
以上内容还使用os.isdir()
检查文件是否为目录。
答案 2 :(得分:1)
如果Vineeth's
的答案不适合您的情况,您可以subprocess
模块运行os
的特定命令,如下所示
import subprocess
subprocess.call('rm -rf /path/of/the/dirctory/*', shell=True)
上面的命令是linux
特有的,您可以使用与上面同一命令相对应的Windows。
注意-这里shell=True
将*
扩展为文件/文件夹。
此外,请注意,Vineeth's
的答案是os
独立的,并且上面的答案是os
特定的。 谨慎。
P.S。 -您也可以使用powershell
模块运行subprocess
命令。