您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

初学者Python:读取和写入同一文件

初学者Python:读取和写入同一文件

这似乎是Windows的错误-http://bugs.python.org/issue1521491。

http://mail.python.org/pipermail/python-bugs- list/2005-August/029886.html中解释的替代方法的报价

除非在文件之间进行文件定位操作(例如,seek()),否则将读取和写入混合在打开以更新的文件上的影响是完全不确定的。我无法猜出您预期会发生什么,但是似乎最有可能通过插入可靠地获得您的预期

fp.seek(fp.tell())

在read()和您的write()之间。

我的原始回复演示了如何在打开的用于追加的同一文件上进行读取/写入。如果您使用Windows,显然是不正确的。

在“ r +”模式下,使用write方法将根据指针所在的位置将字符串对象写入文件。在您的情况下,它将字符串“ Test abc”附加到文件的开头。请参阅以下示例:

>>> f=open("a","r+")
>>> f.read()
'Test abc\nfasdfafasdfa\nsdfgsd\n'
>>> f.write("foooooooooooooo")
>>> f.close()
>>> f=open("a","r+")
>>> f.read()
'Test abc\nfasdfafasdfa\nsdfgsd\nfoooooooooooooo'

字符串“ foooooooooooooooo”附加在文件末尾,因为指针已经在文件末尾。

您是否在区分二进制文件和文本文件的系统上?在这种情况下,您可能希望使用“ rb +”作为模式。

在区分二进制文件和文本文件的系统上,将“ b”追加到以二进制模式打开文件的模式;在没有此区别的系统上,添加“ b”无效。http://docs.python.org/2/library/functions.html#open

python 2022/1/1 18:43:34 有459人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶