应该从目录中删除某些txt文件的脚本没有删除这些文件



我正在尝试编写一个python脚本,迭代目录中的所有txt文件并删除那些单词少于定义限制的文件。当前脚本不删除文件。下面是我尝试的:

import os
wordLimit = 1000
def articleWordCount(filename):
number = 0
with open(filename, 'w+') 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"):
if articleWordCount(filename) < wordLimit:
removedArticles += 1
os.remove(filename)
else:
print(os.path.join(directory, filename))
print(removedArticles)
articlesRemoval()

您应该使用选项"r+"以读取模式打开文件,您以写入模式打开它并且函数articleWordCount总是返回0。

os.listdir()不返回路径,只有文件名,所以你要删除的文件不存在…我假设数据在您启动脚本的目录中,并且它确实找到了您想要的文件。将os.remove(filename)改为os.remove(os.path.join(directory, filename)):

import os
wordLimit = 1000
def articleWordCount(filename):
number = 0
with open(filename, 'w+') 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"):
if articleWordCount(filename) < wordLimit:
removedArticles += 1
os.remove(os.path.join(directory, filename))
else:
print(os.path.join(directory, filename))
print(removedArticles)
articlesRemoval()

最新更新