Last Updated: 2023-06-09 03:50:31 Friday
-- TOC --
open mode | commments |
---|---|
r | default, readonly |
w | 创建新文本文件,如果文件已存在,源文件内容全部消失! |
a | 追加写入文本模式 |
r+ | 可读可写,不创建文件 |
w+ | 可读可写,清空源文件,或创建新文件 |
a+ | 追加写入,可读,不清空源文件,但会创建新文件 |
x | 如果文件不存在,就创建,否则open失败 |
以上是Python支持的全部7种文本文件的打开方式。
其中6种如果带上字母b,就变成了二进制文件的打开方式,其含义是一样的。因此二进制文件的打开方式有:rb,wb,ab,rb+,wb+,ab+
。
如果有写入设备文件的需求,比如直接将字节写入硬盘扇区,用rb+
打开。
请特别注意r+模式下的写入方式,不是插入,而是覆盖!
>>> f = open('text.txt','r+')
>>> f.read()
'abcde\n12345\n66778899\n'
>>> f.seek(0)
0
>>> f.write('beginning...\n')
13
>>> f.seek(0)
0
>>> f.read()
'beginning...\n6778899\n'
>>> f.close()
虽然r+
可写,但并不具有w
创建新文件的功能。
a+
模式可以读,可以将文件指针指向最开始,但是写入永远是在文件最后进行。这个细节有些场景会很方便。
>>> f = open('text.txt')
>>> f.read()
'cs.pynote.net\n'
>>> f.close()
>>> f = open('text.txt','a+')
>>> f.tell()
15
>>> f.seek(0)
0
>>> f.read()
'cs.pynote.net\n'
>>> f.seek(0)
0
>>> f.write('123\n')
4
>>> f.seek(0)
0
>>> f.read()
'cs.pynote.net\n123\n'
本文链接:https://cs.pynote.net/sf/python/202301241/
-- EOF --
-- MORE --