import os for root,dirs,files in os.walk("F:\Work\\2018\\1011-FIX\Release"):#坑1 for name in dirs: #print name if "test_fix" in str(name): path = os.path.join(root,name) #print path for root1,dirs1,files1 in os.walk(path):#坑2 for file in files1: #print file if file not in ('FIX42.ini','Test_Fix.exe'): path1=os.path.join(path,file) #print path1 os.remove(path1)#坑3 else: continue
一个简单的查找指定目录下的某些文件并删除的程序,第一个坑是目录的名字,之前数字2018前后只有一个反斜杠时始终没法遍历出内容,貌似无法识别,这里有点不是很明白,难道纯数字命名的目录和包含特殊字符的目录python无法识别吗?第二个坑是循环子目录时,root、dirs、files一开始用了和上层循环一样的名字,导致后面始终只得到了一个子目录下的文件,其他子目录的文件都拿不到,将每个名字后面加了个1后终于才得到;第三个坑是一开始直接使用的os.remove(file),导致一值报错WindowsError:[Error 2] ,百度了一下发现是不存在这个文件,想了一下删除应该是要用绝对路径的,最后终于删除成功了。
附带一下别的地方转来的报错信息
WindowsError:[Error 2] 不存在这个文件
WindowsError:[Error 3] 没有这个路径
WindowsError:[Error 5] 权限问题
WindowsError:[Error 13] 该文档被其它程序占用,处理不了
WindowsError:[Error 123] 路径语法有误
WindowsError:[Error 145] 目录非空,多在删除非空目录时出现
参考文章:
http://blog.csdn.net/u010189918/article/details/21093443
仅此记录一下菜鸟的自我学习中的采坑之路
浙公网安备 33010602011771号