【发布时间】:2018-08-21 07:27:20
【问题描述】:
我想在包含几千个文本文件的本地文件夹中循环,删除停用词,并将文件保存在子文件夹中。我的代码循环遍历所有文件,但将所有文本文件写入一个新文件。我需要将文件分开 - 因为它们在哪里,并且具有完全相同的文件名,只是没有停用词。我做错了什么?
import io
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
import glob
import os
import codecs
stop_words = set(stopwords.words('english'))
for afile in glob.glob("*.txt"):
file1 = codecs.open(afile, encoding='utf-8')
line = file1.read()
words = word_tokenize(line)
words_without_stop_words = [word for word in words if word not in stop_words]
new_words = " ".join(words_without_stop_words).strip()
appendFile = open('subfolder/file1.txt','w', encoding='utf-8')
appendFile.write(new_words)
appendFile.close()
我看到文件名将是“file1”(第 11 行) - 我无法理解 glob(如果 glob 甚至是解决方案?)。
【问题讨论】:
-
我不明白。如果您想拥有单独的文件,那么为什么在第二个
open中使用相同的文件名,而不是使用afile构建新文件名?
标签: python python-3.x glob