Python2中删除含指定字符串的子目录文件问题求助
嘿,我来帮你搞定这个问题~
你的代码只删除第一个符合条件的文件,核心问题出在判断逻辑和遍历方式上:你用了if file_name in files,这其实是在检查是否存在**文件名完全等于file_name**的文件,而不是文件名包含指定字符串的文件;而且就算找到一个匹配项,你也没有遍历所有文件,所以只会处理第一个完全匹配的文件,其他符合要求的CSV根本没被检查到。
针对你的需求,我调整了代码,适配Python2的语法,能遍历所有子目录并删除所有文件名包含指定字符串的CSV文件:
import os # 替换成你要搜索的根目录 search_folder = "/path/to/your/target/folder" # 替换成你要查找的指定字符串 target_string = "your_keyword" for root, dirs, files in os.walk(search_folder): # 遍历当前目录下的每个文件 for file in files: # 检查两个条件:文件名包含目标字符串,且是CSV文件 if target_string in file and file.endswith('.csv'): file_full_path = os.path.join(root, file) print "找到符合条件的文件: {}".format(file_full_path) print "正在删除文件......!!" os.remove(file_full_path)
几个小提醒:
- 建议先把
os.remove(file_full_path)这行注释掉,先运行代码查看输出的文件路径是否正确,确认没问题再执行删除操作,避免误删重要文件 - 如果需要忽略大小写匹配(比如要匹配包含"test"和"Test"的文件),可以把判断条件改成:
if target_string.lower() in file.lower() and file.endswith('.csv')
内容的提问来源于stack exchange,提问作者heiwa
相关产品推荐
相关产品推荐

