Python全栈工程师

20.2-文件的模式

2019-09-24  本文已影响0人  BeautifulSoulpy

感情、大家的关系,都是有度的!朋友也是有排名的!

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类型

上一篇下一篇

猜你喜欢

热点阅读