Python脚本无法删除目录中字数少于阈值的txt文件问题咨询
脚本故障排查与修复
以下是你代码中存在的问题及修复方案:
- 文件打开模式错误:计数函数中使用
w+模式打开文件,该模式会直接清空原有文件内容,且文件指针默认指向文件末尾,无法读取到原有文本内容,应该替换为只读模式r。 - 路径拼接缺失:
os.listdir()仅返回目录下的文件名,不带父级目录路径,直接传入文件名给open()、os.remove()时,程序会从当前工作目录查找文件,找不到data目录下的目标文件,需要使用os.path.join()拼接完整路径。 - 可选优化:打开文本文件时指定编码,避免不同系统默认编码不一致导致的读取报错。
修复后完整代码
import os wordLimit = 1000 def articleWordCount(full_path): number = 0 # 改为只读模式,指定utf-8编码 with open(full_path, 'r', encoding='utf-8') as f: for line in f: words = line.split() number += len(words) return number def articlesRemoval(): directory = 'data' removedArticles = 0 for filename in os.listdir(directory): if filename.endswith(".txt"): # 拼接完整路径 full_path = os.path.join(directory, filename) if articleWordCount(full_path) < wordLimit: removedArticles += 1 os.remove(full_path) else: print(full_path) print(removedArticles) articlesRemoval()
内容的提问来源于stack exchange,提问作者Kiralyn
相关产品推荐
相关产品推荐

