应用场景:
下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件
使用环境:win7,python3.6
代码:
由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可找到所有文件夹及文件
import os def deleteFiles(): for root, dirs, files in os.walk(wanted_del_file_dir): for file_name in files: file_path = os.path.join(root, file_name) if file_name in del_file_list: print("-" * 20) print('delete:%s' % file_path) # 查看删除文件具体路径 os.remove(file_path) if __name__ == '__main__': wanted_del_file_dir = u'D:\test' # 要批量删除文件的最上级文件夹 del_file_list = ['百度云SVIP长期免费使用.url', '本教程由我爱学it提供.url', '高清电子书籍.url', '更多精品教程.url', '下载必看.txt', ] deleteFiles() print('删除完成!')
2、用递归的方式:
import os def readFilename(file_dir): for root, dirs, files in os.walk(file_dir): return files, dirs, root def deleteFiles(files, dirs, root): for i in files: if i in del_file_list: print("-" * 20) print('delete:%s' % os.path.join(root, i), i) # 查看删除文件具体路径 os.remove(os.path.join(root, i)) for j in dirs: fi, di, ro = readFilename(root + "\" + j) deleteFiles(fi, di, ro) if __name__ == '__main__': wanted_del_file_dir = u'D:\00python临时\S15django' # 要批量删除文件的最上级文件夹 files, dirs, root = readFilename(wanted_del_file_dir) del_file_list = ['百度云SVIP长期免费使用.url', '本教程由我爱学it提供.url', '高清电子书籍.url', '更多精品教程.url', '下载必看.txt', ] #设置要删除的文件 deleteFiles(files, dirs, root) print('删除完成!')