.write()不向输出文件python写入任何内容

时间:2019-02-28 10:46:34

标签: python file output nltk file-handling

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

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)

1 个答案:

答案 0 :(得分:2)

每次在循环中以'w'模式打开文件时,都将擦除文件的内容。因此,按照您的代码方式,如果您的上一个循环迭代产生空结果,那么您将不会在文件中看到任何内容。

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

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

Reading and Writing Files

  当仅读取文件时,

模式可以为“ r”,仅用于写入时为“ w”(将删除具有相同名称的现有文件),并且“ a”打开文件以进行附加;