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

标签 python file file-io

看了一些帖子,好像可以用'r+'或'w+'模式打开文件进行读写。然而,尝试使用这些模式总是给我带来奇怪的结果:

  1. 如果我使用 'r+',调用 file.read(),然后调用 file.write('str'), 会出现“IOError: [Errno 0] Error”的错误
  2. 如果我使用 'r+',调用 file.write('str'),然后调用 file.read(), 它会返回意想不到的很长的内容(看起来像里面 一些对象)
  3. 如果我使用 '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/

相关文章:

python - 抓取 mongodb 中的 URL 并使用抓取的文本更新记录

Java - 无法找到肯定存在的文件路径

java - 在java中读取文件并打印最大和最小数

php - 无法将文件上传到网络服务器

python - Pandas - 对非日期时间重新采样

python - 发送一封电子邮件,其中包含 DataFrames 作为电子邮件正文中的表格

python - 如何在我的程序中更好地使用日志记录模块?

windows - 如何从磁盘获得良好的并发读取性能

java - 使用java从大文件中读取 block

python - 如何将字符串转换为数字列表