在python3中,readline()方法似乎有一个错误。
我有一个文件txt.txt,其中包含两行:
1234567890
abcdefghij
然后我运行以下代码:
g = open("txt.txt","r+")
g.write("xxx")
g.flush()
g.close()
它会按预期修改文件:
xxx4567890
abcdefghij
然后我运行以下代码:
g = open("txt.txt","r+")
g.readline()
Out[99]: 'xxx4567890\n'
g.tell()
Out[100] 12
g.write("XXX")
g.flush()
g.close()
I get the following:
xxx4567890
abcdefghij
XXX
为什么将“XXX”写入文件末尾,而不是第一行之后?
如果我运行以下操作:
g = open("txt.txt","r+")
g.readline()
Out[99]: 'xxx4567890\n'
g.tell()
Out[100] 12
g.seek(12)
g.tell()
g.write("XXX")
g.flush()
g.close()
我明白:
xxx4567890
XXXdefghij
XXX
这似乎是readline()中的一个错误——它说光标在12,但在EOF处写入,除非我使用seek()
我正在使用Spyder作为IDE在窗口11上运行所有这些。有人建议停止缓存,但我不知道该怎么做。在Spyder中启动之前,我确实删除了所有变量