python - 我写在一个文件上并读取它但是当我再次运行时似乎
问题描述
我想写一个文件,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)
解决方案
问题是写入文件使用缓冲区。所以在上线之后f.writelines(words)
什么都没有发生。只有缓冲区发生了变化。
实际上,文件仍然没有改变,文件指针仍然在文件的开头。因此,第二次运行代码时,您会看到打印的内容,这会将文件指针留在文件末尾,然后才将缓冲区传递给文件,并且您拥有重复的内容。
mode='w'
如果您只想写入文件,只需使用...
推荐阅读
- javascript - Laravel 中的 Vue.js
- php - 处理所有用户的默认类别,但可以编辑/删除它们
- c# - System.Net.WebException: '服务器违反了协议。Section=ResponseStatusLine'
- php - PHP MySQL Query使用变量,不显示结果,也没有错误
- fastapi - 从 pydantic 模型中查询参数
- laravel - React Router - 需要帮助路由
- alloy - 如何使用合金内核语言导出“一”多重性约束?
- swagger - dredd 无法运行并出现错误“数据与“anyOf”中的任何模式不匹配等等
- arrays - 在所有其他元素出现两次的数组中查找出现一次的元素(不使用 XOR)
- java - bean id 和引用类型的区别