.write()没有写任何东西到输出文件python

问题描述 投票:0回答:1

所以我试图在目录中打开一堆文件,从这些文件中删除一些单词并将输出写入同一目录中的文件。我在尝试写入输出文件时遇到问题。没有任何东西写入文件。任何试图解决这个问题的帮助将不胜感激!这是我的代码:

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)
python file output nltk file-handling
1个回答
2
投票

每次使用循环中的'w'模式打开文件时,都会删除文件的内容。因此,代码的方式是,如果最后一次循环迭代产生空结果,则不会在文件中看到任何内容。

将模式更改为'w+''a'

        with open(output, 'w+') as output_file:

Reading and Writing Files

当只能读取文件时,模式可以是'r',仅写入的'w'(将删除具有相同名称的现有文件),'a'打开文件以进行追加;

© www.soinside.com 2019 - 2024. All rights reserved.