应用场景:

下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件

使用环境:win7,python3.6

代码:

1、直接用for循环

由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可找到所有文件夹及文件

  1. import os
  2.  
  3. def deleteFiles():
  4. for root, dirs, files in os.walk(wanted_del_file_dir):
  5. for file_name in files:
  6. file_path = os.path.join(root, file_name)
  7. if file_name in del_file_list:
  8. print("-" * 20)
  9. print('delete:%s' % file_path) # 查看删除文件具体路径
  10. os.remove(file_path)
  11.  
  12. if __name__ == '__main__':
  13. wanted_del_file_dir = u'D:\\test' # 要批量删除文件的最上级文件夹
  14. del_file_list = ['百度云SVIP长期免费使用.url',
  15. '本教程由我爱学it提供.url',
  16. '高清电子书籍.url',
  17. '更多精品教程.url',
  18. '下载必看.txt',
  19. ]
  20.  
  21. deleteFiles()
  22. print('删除完成!')

  

2、用递归的方式:

  1. import os
  2.  
  3. def readFilename(file_dir):
  4. for root, dirs, files in os.walk(file_dir):
  5. return files, dirs, root
  6.  
  7. def deleteFiles(files, dirs, root):
  8. for i in files:
  9. if i in del_file_list:
  10. print("-" * 20)
  11. print('delete:%s' % os.path.join(root, i), i) # 查看删除文件具体路径
  12. os.remove(os.path.join(root, i))
  13.  
  14. for j in dirs:
  15. fi, di, ro = readFilename(root + "\\" + j)
  16. deleteFiles(fi, di, ro)
  17.  
  18. if __name__ == '__main__':
  19. wanted_del_file_dir = u'D:\\00python临时\\S15django' # 要批量删除文件的最上级文件夹
  20. files, dirs, root = readFilename(wanted_del_file_dir)
  21. del_file_list = ['百度云SVIP长期免费使用.url',
  22. '本教程由我爱学it提供.url',
  23. '高清电子书籍.url',
  24. '更多精品教程.url',
  25. '下载必看.txt',
  26. ]
  27.   #设置要删除的文件
  28. deleteFiles(files, dirs, root)
  29. print('删除完成!')

  

Python小练习:批量删除多个文件夹内的相同文件的更多相关文章

  1. 用Python来实现列举某个文件夹内所有的文件列表

    用Python来实现列举某个文件夹内所有的文件列表.吾八哥我动手写代码之前分析了下,遍历一个文件夹,肯定是需要用到os模块了,查阅模块帮助信息,可知os.listdir()方法可以列举某个文件夹内的所 ...

  2. Python文件操作大全,随机删除文件夹内的任意文件

     在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法: os.path.abspath(path) #返回绝对路径os.path.basename(path ...

  3. Java获取一个文件夹内的所有文件(包括所有子文件夹内的)

    输入文件数组.文件夹路径 返回的文件在输入的文件数组中 private void getFiles(ArrayList<File> fileList, String path) { Fil ...

  4. Python批量修改文件夹内所有json文件中部分内容

    #coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filena ...

  5. python实现将文件夹内所有txt文件合并成一个文件

    新建一个文件夹命名为yuliao,把所有txt文件放进去就ok啦!注意路径中‘/’,windows下路径不是这样. #coding=utf-8  import os #获取目标文件夹的路径 filed ...

  6. C#编写程序监测某个文件夹内是否有文件进行了增,删,改的动作?

    新建一个Console应用程序,项目名称为“FileSystemWatcher”,Copy代码进,编译后就可以用了.代码如下: using System; using System.Collectio ...

  7. java+web上传文件夹内的所有文件

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

  8. python 小工具 重命名当前文件夹内所有的文件,升序命名

    背景:一个朋友想升序重命名他的照片,但是太多了不想手动所以,emememem os这个模块,不用说,rename,filedir等 #conding=utf8 import os path = os. ...

  9. C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

    1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...

随机推荐

  1. ant design pro如何实现分步表单时,返回上一步值依然被保存

    首先,分步表单ant design pro支持,看官方Demo即可,那么如何实现如题,关键在于设置initialValue {getFieldDecorator('name', { initialVa ...

  2. 洛谷 U96762 小R与三角形 题解

    U96762 小R与三角形 原题链接 题目描述 小 R 所在的小镇有 n 个村落,这 n 个村落分布在一个圆周上,这些村落之间两两有直达的小路,小路可能相交,但不存在三条路交于一点.现在小 R 正好放 ...

  3. 推荐IOS Moneky测试工具Fast Monkey

    推荐IOS Moneky测试工具Fast Monkey 1 介绍 非插桩 iOS Monkey, 支持控件,每秒4-5 action事件 2 下载 https://github.com/zhangzh ...

  4. 如何保证redis数据都是热点数据

    mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据? 1.限定 Redis 占用的内存,Redis 会根据自身数据淘汰策略,加载热数据到内存.所以,计算 ...

  5. Linux上使用yum安装openjdk

    来源:https://www.cnblogs.com/yaun1498078591/p/10368884.html 使用yum查找jdk: yum search java|grep jdk # yum ...

  6. jdk 1.7新特性

    JDK1.7新特性 1,switch中可以使用字串了String s = "test";   switch (s) {   case "test" :      ...

  7. PatchMatchStereo可能会需要的Rectification

    在稠密三维重建中,rectification可以简化patch match的过程.在双目特征匹配等场景中其实也用得到,看了一下一篇论文叫< A Compact Algorithm for Rec ...

  8. python实现双向循环链表

    参考https://www.cnblogs.com/symkmk123/p/9693872.html#4080149 # -*- coding:utf-8 -*- # __author__ :kusy ...

  9. HTTP漫谈

    一.说明 1.1 当前背景说明 很多web的书包括web安全的书都会有一章介绍http协议,我就总恶意揣测作者是在凑字数,一般都直接跳过去. 相比TCP/IP这种各字段基于数值代号的协议,http这种 ...

  10. Faiss的学习和入门文章

    可以看这里的文章: https://www.leiphone.com/news/201703/84gDbSOgJcxiC3DW.html https://waltyou.github.io/Faiss ...