python open('file','r+')给出了奇怪的结果

2024-10-01 00:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在阅读了一些帖子之后,你似乎可以用“r+”或“w+”的模式打开一个既读又写的文件。但是,尝试使用这些模式总是会给我带来奇怪的结果:

  1. 如果我用“r+”,请打电话文件.read(),然后打电话文件.写入('str'), 将出现错误“IOError:[Errno 0]error”
  2. 如果我用“r+”,请打电话文件.写入('然后调用')文件.read(), 它将返回意外且非常长的内容(看起来像内部 某个物体的)
  3. 如果我用“w+”,调用文件.read()将返回空字符串

我要做的是打开一个文件,读取内容,修改它,然后写回。当前我用“r”打开它,更改内容,然后用“w”再次打开它并写回。这是个好办法吗?在

http://snipt.org/zglJ0有一个例子

我使用的是windows7和python2.7.2


Tags: 文件字符串http内容read错误模式error
1条回答
网友
1楼 · 发布于 2024-10-01 00:22:48

在读写以更新模式打开的文件之间切换时,必须flush()。或者我想你也可以seek()。这是由python2.x中Windows文件实现中的一些奇怪行为造成的;他们在3.x中修复了这个问题

相关问题 更多 >