【发布时间】:2012-02-03 15:11:58
【问题描述】:
看了一些帖子,好像你可以用'r+'或'w+'模式打开一个文件进行读写。但是,尝试使用这些模式总是会给我带来奇怪的结果:
- 如果我使用'r+',调用file.read(),然后调用file.write('str'), 会出现“IOError: [Errno 0] Error”的错误
- 如果我使用'r+',调用file.write('str'),然后调用file.read(), 它会返回意想不到的很长的内容(看起来像里面 一些物体)
- 如果我使用 'w+',调用 file.read() 将返回空字符串
我要做的是打开一个文件,读取内容,修改它,然后写回。目前我用'r'打开它,更改内容,然后用'w'再次打开它并写回。这是一个好方法吗?
我正在使用窗口 7 和 python 2.7.2
【问题讨论】:
-
你能分享一个演示问题的代码sn-p吗?
-
以上三个实验都被file.close()关闭。但是,似乎在同一个实验中同时执行 read() 和 write()(中间不调用 close())会导致奇怪的结果。
-
windows 和 linux 上都这样吗?
-
您能否发布您正在尝试执行的代码 sn-p 吗?我写了一小段代码,它的功能完全符合预期。另外,您使用的是什么版本的 Python?
-
snipt.org/zglJ0我使用的是windows和python 2.7.2(对不起,我把代码写错了,现在是导致问题的原因:))