python文件打开方式详解——a、a+、r、r+、rb、rt、w、w+区别(史上最全)

一.总结

a:附加写,不可读。
a+:附加读写。追加写。

r:只读,最常用。不创建,不存在会报错。(读二进制文件可能会读取不全)
rb:只读。二进制文件按二进制位进行读取。不创建,不存在会报错。
rt:只读。文本文件用二进制读取。不创建,不存在会报错。
r+:可读写。覆盖写。不创建,不存在会报错。

w:只写。存在则覆盖。不存在则创建。
w+:可读写。存在则覆盖。不存在则创建。

二.区分

  1. r只读r+读写,不创建,即需要事先存在一个文件以供读/读写,若不存在文件会报错

  2. w新建只写w+新建读写,二者都会将文件内容清零,即事先不需要有该文件存在,若已经存在则会覆盖(以w方式打开,不能读出。w+可读写)

  3. w+与r+区别:
    r+:可读可写,若文件不存在,报错
    w+: 可读可写,若文件不存在,创建

  4. 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

  1. 以a,a+的方式打开文件,附加方式打开
    以 ‘U’ 标志打开文件, 所有的行分割符通过 Python 的输入方法(例#如 read*() ),返回时都会被替换为换行符\n. (‘rU’ 模式也支持 ‘rb’ 选项) .
    r和U要求文件必须存在

不可读的打开方式:w和a

若不存在会创建新文件的打开方式:a,a+,w,w+

  1. 使用’r’一般情况下最常用的,但是在进行读取二进制文件时,可能会出现文档读取不全的现象;
    使用’rb’按照二进制位进行读取的,不会将读取的字节转换成字符,二进制文件用二进制读取用’rb’ ;
    rt模式下,python在读取文本时会自动把\r\n转换成\n,文本文件用二进制读取用‘rt’;

你可能感兴趣的:(python学习,python)