删除文件以

时间:2016-08-25 15:15:45

标签: python

我希望此功能删除文件。它正确地执行了此操作,但删除了我不想要的文件夹。

执行期间我也遇到错误:

Access is denied: 'C:/temp3\\IDB_KKK

在文件夹temp3中我有:

IDB_OPP.txt
IDB_KKK - folder

代码:

def delete_Files_StartWith(Path,Start_With_Key):
    my_dir = Path
    for fname in os.listdir(my_dir):
        if fname.startswith(Start_With_Key):
            os.remove(os.path.join(my_dir, fname))

delete_Files_StartWith("C:/temp3","IDB_")

4 个答案:

答案 0 :(得分:2)

使用以下内容检查它是否是目录:

os.path.isdir(fname) //if is a directory

答案 1 :(得分:1)

删除目录及其所有内容use shutil

  

shutil模块对文件和文件集合提供了许多高级操作。

请参阅问题How do I remove/delete a folder that is not empty with Python?

import shutil

..
    if fname.startswith(Start_With_Key):
        shutil.rmtree(os.path.join(my_dir, fname))

答案 2 :(得分:0)

是否要以递归方式删除文件(即包含Path子目录中的文件),而不删除这些子目录?

import os
def delete_Files_StartWith(Path, Start_With_Key):
    for dirPath, subDirs, fileNames in os.walk(Path):
        for fileName in fileNames: # only considers files, not directories
            if fileName.startswith(Start_With_Key):
                os.remove(os.path.join(dirPath, fileName))

答案 3 :(得分:0)

我通过以下方式解决了这个问题:

def delete_Files_StartWith(Path,Start_With_Key):
    os.chdir(Path)
    for fname in os.listdir("."):
        if os.path.isfile(fname) and fname.startswith(Start_With_Key):
            os.remove(fname)

谢谢大家。