el modo y el modo de x b

A, el modo de x y el modo b

1, el modo de x (a saber)

x modo de archivo de control es el modo de funcionamiento es un modo de sólo escritura

Características: única escritura, ilegibles; No existe se crea documento escrito, existirá el error.

Ejemplo:

with open('a.txt',mode='x',encoding='utf-8') as f:
    pass  #a不存在,创建a.txt空文件

with open('a.txt',mode='x',encoding='utf-8') as f:
    pass  #a存在,报错

with open('b.txt',mode='x',encoding='utf-8') as f:
    pass  #b不存在,创建b.txt空文件
    f.read()  #x是只写模式,不支持读操作,所以报错
    
with open('c.txt',mode='x',encoding='utf-8') as f:
    f.write('哈哈哈\n')  #c不存在,创建b.txt文件,写入'哈哈哈\n'

2, el modo b

1, b y el patrón contrastive t

t :

1) es el modo de control de leer el contenido del archivo

2) se leen como una cadena de unidades (Unicode)

3) sólo para archivos de texto

carácter 4) se debe especificar la codificación, es decir, los parámetros de codificación se debe especificar

b :

1) es el modo de control de leer el contenido del archivo

2) se leen en bytes

3) puede presentar para todos

4) no se debe especificar el carácter de codificación, es decir, no debe especificar el parámetro de codificación

Comparación Resumen:

1) en el modo de operación normal archivos de texto t nos ayudan a ahorrar una codificación de enlace y la decodificación, el modo B que necesita para codificar y decodificar de forma manual, por lo que en este caso t es el modo más conveniente, se recomienda el modo de texto sin formato t
2) para no archivos de texto (tales como imágenes, vídeo, audio, etc.) sólo pueden utilizar el modo B, modo de compatibilidad b

2, el modelo básico debe ser utilizado junto con b r, w, b en combinación con

1, rb

with open(r'美图.jpg',mode='rb',encoding='utf-8') as f:
    res=f.read() # utf-8的二进制->unicode
    print(res)

2, wb

with open(r'e.txt',mode='wb') as f:
    f.write('雷猴啊!hello'.encode('utf-8'))

3, a partir de

with open(r'e.txt',mode='ab') as f:
    f.write('雷猴啊!hello'.encode('utf-8'))

2, caso práctico modo b

# rb和wb写成的文件拷贝工具
src_file=input('源文件路径>>: ').strip()
dst_file=input('源文件路径>>: ').strip()
with open(r'{}'.format(src_file),mode='rb') as f1,\
    open(r'{}'.format(dst_file),mode='wb') as f2:
    # res=f1.read() # 内存占用过大
    # f2.write(res)

    for line in f1:
        f2.write(line) #一次只读写一行

3, valor del ciclo de modo de b

El control de la cantidad de datos lee cada vez que sus datos: una manera

with open(r'美图.jpg',mode='rb') as f:
    while True:
        res=f.read(1024) # 自定义每次循环读取的字节数为1024
        if len(res) == 0:
            break  #文件读完最后一行后,len长度为0,退出循环
        print(len(res))

Segunda manera:

(Lea directamente en unidades, cuando su contenido de terceros dará lugar a una sola vez los datos leídos en el contenido demasiado tiempo demasiado grande)

with open(r'美图.jpg',mode='rb') as f:
    for line in f:  #用for循环每次只读一行
        print(line)  

Supongo que te gusta

Origin www.cnblogs.com/zhangtieshan/p/12508072.html
Recomendado
Clasificación