栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初学者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 abcnfasdfafasdfansdfgsdn'>>> f.write("foooooooooooooo")>>> f.close()>>> f=open("a","r+")>>> f.read()'Test abcnfasdfafasdfansdfgsdnfoooooooooooooo'

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

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号