• 【Python】批量删除文件


    上次操作

    解决matplotlib文字标签遮挡问题

    https://www.cnblogs.com/hightech/p/13175470.html

    照着网上教程操作,风扇转的厉害,同时留下了不少垃圾文件,手动删除500张图片,真是体力活。

    需求:删除000a.png 001.png 500.png

    下面写下如何借助Python,实现快速批量删除文件。

    1、抄网上代码

    import os                                                 #导入模块
    def delete_files():                                           #定义函数名称
        for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
               for filename in filenames:                         #遍历列表下的所有文件名
                    if filename!= r'aaa.png':                       #当文件名不为“aaa.png”时
                        if filename.endswith('.png'):                #当文件名以.png后缀结尾时
                            os.remove(os.path.join(foldName, filename))    #删除符合条件的文件
                            print("{} deleted.".format(filename)) 

    2、修改路径

    # 运行程序前,记得修改主文件夹路径! 
    path = os.getcwd() #获取当前工作目录路径  
    delete_files()  

    3、修改查找文件

    # python使用正则表达式来获取文件名的前缀方法
    import re
    test='000.png'
    m=re.findall(r'(.+?).',test)
    print(m)

    4、查找当前目录下的目标文件,

    不要用递归--->os.listdir(path)
    明确自己的需求,不要盲目抄代码。
    下面是自己原创部分。
    path = os.getcwd() #获取当前工作目录路径  
    list_name=os.listdir(path)
    for filename in list_name:
        if not re.findall(r'图d.png',filename):   # 需要保留的文件
            if re.findall(r'(d{3}.?).png',filename) :   # 需要删除的文件
                print(filename)

    5、验证没有问题再加上删除操作【防止误删除】

    filename是上步的结果,默认最后一个。

    6、代码合并:

    path = os.getcwd()
    list_name=os.listdir(path)
    n=0
    del_filelst=[]
    for filename in list_name:
        if not re.findall(r'图d.png',filename):   # 需要保留的文件
            if re.findall(r'(d{3}.?).png',filename) :   # 需要删除的文件
                del_filelst.append(filename)
                print("{} finded.".format(filename))
                os.remove(os.path.join(path, filename))    #删除符合条件的文件
                print("{} deleted.".format(filename)) 
                n+=1
                
                
    print('共删除%s个文件'%n)  
    print('删除文件为:
    ',del_filelst)

    输出内容

     实际截图

     特别说明:因为自己代码问题导致的文件误删除,本人概不负责。

    任何涉及删除操作,一定要在文件查找100%准确无误后执行,

      

  • 相关阅读:
    Swing 2
    Swing 1
    集合
    关于sql 模糊字段查询语句
    关于前端开发的几篇文章
    黄金点游戏
    word count
    四则运算
    软件工程——《构建之法》读后困惑
    自我介绍
  • 原文地址:https://www.cnblogs.com/hightech/p/13176092.html
Copyright © 2020-2023  润新知