所以我试图打开目录中的一堆文件,从这些文件中删除一些单词,然后将输出写入同一目录中的文件。尝试写入输出文件时遇到问题。没有任何内容写入文件。任何帮助解决此问题的帮助将不胜感激!这是我的代码:
path = 'C:/Users/User/Desktop/mini_mouse'
output = 'C:/Users/User/Desktop/filter_mini_mouse/mouse'
for root, dir, files in os.walk(path):
for file in files:
#print(os.getcwd())
#print(file)
os.chdir(path)
#print(os.getcwd())
with open(file, 'r') as f, open('NLTK-stop-word-list', 'r') as f2:
#x = ''
mouse_file = f.read().split() # reads file and splits it into a list
stopwords = f2.read().split()
x = (' '.join(i for i in mouse_file if i.lower() not in (x.lower() for x in stopwords)))
#print(x)
with open(output, 'w') as output_file:
output_file.write(x)
答案 0 :(得分:2)
每次在循环中以'w'
模式打开文件时,都将擦除文件的内容。因此,按照您的代码方式,如果您的上一个循环迭代产生空结果,那么您将不会在文件中看到任何内容。
将模式更改为'w+'
或'a'
:
with open(output, 'w+') as output_file:
当仅读取文件时,模式可以为“ r”,仅用于写入时为“ w”(将删除具有相同名称的现有文件),并且“ a”打开文件以进行附加;