问题:如何打开文件进行读写?
有没有办法打开文件进行读写?
解决方法是,打开文件进行写入,将其关闭,然后再次打开以进行读取。但是,有没有办法打开一个文件都阅读和写作?
回答 0
在不关闭和重新打开的情况下,读取文件然后写入文件(覆盖所有现有数据)的方法如下:
with open(filename, "r+") as f:
data = f.read()
f.seek(0)
f.write(output)
f.truncate()
回答 1
r+
是同时读取和写入的规范模式。这与使用fopen()
系统调用没有什么不同,因为file()
/ open()
只是围绕此操作系统调用的一个小包装。
回答 2
总结I / O行为
| Mode | r | r+ | w | w+ | a | a+ |
| :--------------------: | :--: | :--: | :--: | :--: | :--: | :--: |
| Read | + | + | | + | | + |
| Write | | + | + | + | + | + |
| Create | | | + | + | + | + |
| Cover | | | + | + | | |
| Point in the beginning | + | + | + | + | | |
| Point in the end | | | | | + | + |
和决策分支
回答 3
我已经尝试过类似的方法,并且可以按预期工作:
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的内容写入文件,返回None。
另外,如果您打开有关读写文件的Python教程,则会发现:
“ r +”打开文件以供读取和写入。
在Windows上,附加到模式的’b’以二进制模式打开文件,因此也有’rb’,’wb’和’r + b’之类的模式。