首页 > 解决方案 > 我写在一个文件上并读取它但是当我再次运行时似乎

问题描述

我想写一个文件,hello guys how are you但每个单词都必须是列表项。这是我的代码。当我运行它时它什么也不显示,当我第二次运行它时,它会按我想要的方式逐项显示。但是当我单击文本文件时,它会被写入两次。

with open('stavanger.txt','r+') as f: # file closes itself with with open as filename command
  words = ['hello\n','guys\n','how\n', 'are\n','you\n']
  f.writelines(words)
  for i in f:
    x=i.rstrip().split(',')#turn text file into list and we seperate list items by comma .
    print(x)

标签: python

解决方案


问题是写入文件使用缓冲区。所以在上线之后f.writelines(words)什么都没有发生。只有缓冲区发生了变化。

实际上,文件仍然没有改变,文件指针仍然在文件的开头。因此,第二次运行代码时,您会看到打印的内容,这会将文件指针留在文件末尾,然后才将缓冲区传递给文件,并且您拥有重复的内容。

mode='w'如果您只想写入文件,只需使用...


推荐阅读