一.总结
a:附加写,不可读。
a+:附加读写。追加写。
r:只读,最常用。不创建,不存在会报错。(读二进制文件可能会读取不全)
rb:只读。二进制文件按二进制位进行读取。不创建,不存在会报错。
rt:只读。文本文件用二进制读取。不创建,不存在会报错。
r+:可读写。覆盖写。不创建,不存在会报错。
w:只写。存在则覆盖。不存在则创建。
w+:可读写。存在则覆盖。不存在则创建。
二.区分
-
r只读,r+读写,不创建,即需要事先存在一个文件以供读/读写,若不存在文件会报错
-
w新建只写,w+新建读写,二者都会将文件内容清零,即事先不需要有该文件存在,若已经存在则会覆盖(以w方式打开,不能读出。w+可读写)
-
w+与r+区别:
r+:可读可写,若文件不存在,报错
w+: 可读可写,若文件不存在,创建 -
r+与a+区别:
r+:覆盖写
a+:追加写
示例:
f = open("1.txt",'w+')
f.write('123')
f = open("1.txt",'r+')
f.write('456')
f = open("1.txt",'a+')
f.write('789')
输出:456789
- 以a,a+的方式打开文件,附加方式打开
以 ‘U’ 标志打开文件, 所有的行分割符通过 Python 的输入方法(例#如 read*() ),返回时都会被替换为换行符\n. (‘rU’ 模式也支持 ‘rb’ 选项) .
r和U要求文件必须存在
不可读的打开方式:w和a
若不存在会创建新文件的打开方式:a,a+,w,w+
- 使用’r’一般情况下最常用的,但是在进行读取二进制文件时,可能会出现文档读取不全的现象;
使用’rb’按照二进制位进行读取的,不会将读取的字节转换成字符,二进制文件用二进制读取用’rb’ ;
rt模式下,python在读取文本时会自动把\r\n转换成\n,文本文件用二进制读取用‘rt’;