如何打开文件进行读写?

时间:2011-07-11 09:59:27

标签: python file file-io

有没有办法打开文件进行读写?

作为一种解决方法,我打开文件进行写入,关闭它,然后再打开它进行读取。但有没有办法为打开读写文件?

4 个答案:

答案 0 :(得分:228)

以下是您如何阅读文件,然后写入文件(覆盖任何现有数据),而无需关闭和重新打开:

with open(filename, "r+") as f:
    data = f.read()
    f.seek(0)
    f.write(output)
    f.truncate()

答案 1 :(得分:41)

r+是同时读写的规范模式。这与使用fopen()系统调用没有什么不同,因为file() / open()只是这个操作系统调用的一个小包装。

答案 2 :(得分:19)

我尝试了类似的东西,它按预期工作:

f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()

其中:

  

f.read(size) - 要读取文件的内容,请调用f.read(size),即   读取一些数据并将其作为字符串返回。

  

f.write(string)将string的内容写入文件,返回   无。

此外,如果您打开Python tutorial about reading and writing files,您会发现:

  

'r +'打开文件进行读写。

     

在Windows上,附加到模式的'b'以二进制模式打开文件,所以   还有'rb','wb'和'r + b'等模式。

答案 3 :(得分:5)

总结I / O行为

|          Mode          |  r   |  r+  |  w   |  w+  |  a   |  a+  |
| :--------------------: | :--: | :--: | :--: | :--: | :--: | :--: |
|          Read          |  +   |  +   |      |  +   |      |  +   |
|         Write          |      |  +   |  +   |  +   |  +   |  +   |
|         Create         |      |      |  +   |  +   |  +   |  +   |
|         Cover          |      |      |  +   |  +   |      |      |
| Point in the beginning |  +   |  +   |  +   |  +   |      |      |
|    Point in the end    |      |      |      |      |  +   |  +   |

和决策分支

enter image description here

相关问题