首页 > 解决方案 > 浏览所有文件夹和子文件夹以删除所有包含特定字符串的文件

问题描述

我有几个文件夹,每个文件夹包含几个子文件夹,每个文件夹包含 5-6 个 .txt 文件,每个文件都有水果列表(苹果、梨、葡萄等)。但是,少数随机 .txt 文件包含“鸡”,并且必须是删除。

我正在尝试编写一个程序来浏览每个文件夹和子文件夹,删除包含字符串“chicken”的文件,但由于某种原因它似乎不起作用。

以下是我到目前为止的代码:

import os
DIR = r'C:\Users\Steve\AppData\Local\Programs\Python\Python37-32\fruits'
for parent, dirnames, filenames in os.walk(DIR):
    for fn in filenames:
        found = False
        with open(os.path.join(DIR,filename)) as f:
            for line in f:
                if 'chicken' in line:
                    found = True
                    break
    if found:
        os.remove(os.path.join(DIR, fn))

我收到错误,例如

  File <stdin>, line 4, in <module>
FileNotFoundError: [errno 2] No such file or directory:

我不知道为什么。

非常感谢有关如何使代码顺利运行的任何建议!

标签: pythonpython-3.xdirectoryos.walk

解决方案


你有缩进问题。在 for 循环中使用以下代码

for line in f:
    if 'chicken' in line:
        found = True
        break

推荐阅读