感情、大家的关系,都是有度的!朋友也是有排名的!
open
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
mode模式
mode 是一个可选字符串,用于指定打开文件的模式。
描述字符 | 意义 |
---|---|
'r' | 读取(默认),只读打开 |
'w' | 白纸写入,并先截断文件;只写打开 从头写入;清除内容重新写入 |
'x' | 排它性创建,如果文件已存在则失败; 为写模式 |
'a' | 追加模式写入打开,如果文件存在则在末尾追加,不存在创建; |
'b' | 二进制模式,不可独立使用 |
't' | 文本模式(默认) |
'+' | 更新磁盘文件(读取并写入);给原来只读、只写方式打开提供缺失的读\写能力 |
+为r、w、a、x提供缺失的读或写功能,但是,获取文件对象依旧按照r、w、a、x自己的特征。 +不能单独使用,可以认为它是为前面的模式字符做增强功能的。
# r模式
f = open('test') # 只读还是只写?
f.read()
f.write('abc')
f.close()
f = open('test', 'r') # 只读
f.write('abc')
f.close()
f = open('test1',
# w模式
f = open('test','w')
f.write('abc')
f.close()
>>> cat test # 看看
f = open('test', mode='w')
f.close()
>>> cat test # 看看内容
f = open('test1', mode='w')
f.write('123')
f.close()
>>> cat test1 # 看看内容
总结:
1. w、x 模式的写入不是立即写入,类似于攒够一次再写入;
2. w模式是清除再重新写入
wxa都是只写,wxa都可以产生新文件
w 不管文件存在与否,都会生成全新内容的文件;
a 不管文件是否存在,都能在打开的文件尾部追加;
x 必须要求文件事先不存在,自己造一个新文件。
文本模式t 字符流,将文件的字节按照某种字符编码理解,按照字符操作。open的默认mode就是rt。
二进制模式b 字节流,将文件就按照字节理解,与字符编码无关。二进制模式操作时,字节操作使用bytes类型