python覆盖换行符的问题

自己创建了一个dat文件 里面有两行
分别是
user
user
每行四个字符没有多余空格

之后用python3.3
做以下操作
infile = open('noted.txt','r+')
lines = infile.readlines()
print(lines)
infile.seek(4,0)
infile.write('1')
infile.seek(0)
content = infile.readlines()
print(content)
infile.close()
第一次的输出为
['user\n', 'user']
['user1\n','user']
也就是说我输入的1并没有覆盖了换行符
然后将1手动删除
再运行一遍却得到
['user\n', 'user']
['user1user']
也就是删除了

我用的是win7的系统
请大神指教这里面的机理
谢谢

user后面跟着的是\r\n,第一次运行,你的1覆盖的是\r。第二次运行你覆盖到了后面的\n

在windows下,文本回车换行一起出现。在linux下通常文件文件只有一个换行符。

readline的规则是,读入一个文本行,包括换行符作为一句,放到内存。所以无论是在linux还是windows下,读到的一行字符串,结尾一定是\n
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-08
第一次运行完,文件内容为 user1user
手动删掉1,就是 useruser
再运行 结果 user1ser

>>>
['user\n', 'user']
['user1user']
>>>
['useruser']
['user1ser']
相似回答