如何在python中删除包含其所有文件的目录?

时间:2017-05-03 09:34:26

标签: python python-2.7

我正在处理一些Python代码。我想删除new_folder,包括程序结束时的所有文件。

有人可以指导我如何做到这一点吗?我见过不同的命令,如os.rmdir,但它只删除了路径。这是我的代码:

for files in sorted(os.listdir(path)):
  os.system("mv "+path+" new_folder")`

上面的代码会将一个文件夹(称为check)移动到new_folder中。我想从new_folder中删除该check文件夹。

4 个答案:

答案 0 :(得分:9)

如果要删除文件

import os
os.remove("path_to_file")

但如果要删除目录,则不能使用上面的代码删除目录,然后使用此

import os
os.rmdir("path_to_dir")

从上面的命令,你可以删除一个目录,如果它是空的,如果它不是空的那么你可以使用shutil模块

import shutil
shutil.rmtree("path_to_dir")

以上所有方法都是Python方式,如果你知道你的操作系统,这个方法依赖于OS,所有上述方法都不依赖

import os
os.system("rm -rf _path_to_dir")

答案 1 :(得分:6)

只需使用shutil.rmtree

即可
import shutil
shutil.rmtree(path)

答案 2 :(得分:0)

这是我的方法:

# function that deletes all files and then folder

import glob, os

def del_folder(dir_name):
    
    dir_path = os.getcwd() +  "\{}".format(dir_name)
    try:
        os.rmdir(dir_path)  # remove the folder
    except:
        print("OSError")   # couldn't remove the folder because we have files inside it
    finally:
        # now iterate through files in that folder and delete them one by one and delete the folder at the end
        try:
            for filepath in os.listdir(dir_path):
                os.remove(dir_path +  "\{}".format(filepath))
            os.rmdir(dir_path)
            print("folder is deleted")
        except:
            print("folder is not there")

答案 3 :(得分:-1)

使用os.system("rm -rf" + whatever_path +" new_folder")