看了一些帖子,好像可以用'r+'或'w+'模式打开文件进行读写。然而,尝试使用这些模式总是给我带来奇怪的结果:
- 如果我使用 'r+',调用 file.read(),然后调用 file.write('str'), 会出现“IOError: [Errno 0] Error”的错误
- 如果我使用 'r+',调用 file.write('str'),然后调用 file.read(), 它会返回意想不到的很长的内容(看起来像里面 一些对象)
- 如果我使用 'w+',调用 file.read() 将返回空字符串
我想做的是打开一个文件,读取内容,修改它,然后写回。目前我用'r'打开它,更改内容,然后用'w'再次打开它并写回。这是一个好的方法吗?
在 http://snipt.org/zglJ0 有一个例子
我使用的是 window 7 和 python 2.7.2
最佳答案
在读取和写入以更新模式打开的文件之间切换时,您必须 flush()
。或者我想你也可以 seek()
。这是由 Python 2.x 中的 Windows 文件实现中的一些奇怪行为引起的;他们在 3.x 中修复了它。
关于python open ('file' ,'r+' ) 给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9130877/