python - 浏览所有文件夹和子文件夹以删除所有包含特定字符串的文件
问题描述
我有几个文件夹,每个文件夹包含几个子文件夹,每个文件夹包含 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:
我不知道为什么。
非常感谢有关如何使代码顺利运行的任何建议!
解决方案
你有缩进问题。在 for 循环中使用以下代码
for line in f:
if 'chicken' in line:
found = True
break
推荐阅读
- java - NoSuchBeanDefinitionException:没有名为“entityManagerFactory”的bean可用
- html - 为什么这个 Bootstrap 行覆盖的宽度大于屏幕宽度?
- angular - 离子形式验证最大长度不起作用
- c# - 一旦一个或多个文件在文件夹中包含无效字符,C#就会抛出异常错误
- android - java.lang.IllegalStateException: Activity 已被销毁(替换片段时)
- java - 时间和日期选择器的时间(以毫秒为单位)
- html - ng-repeat 从后端的 json 数组中获取值
- android - 尝试在空对象引用上调用虚拟方法“java.lang.String com.android.server.fingerprint.ClientMonitor.getOwnerString()”
- java - 启动 ActiveMQ 时打印的类路径错误中未检测到 Spring WebApplicationInitializer 类型
- android - 密封类中的 Kotlin 数据类