Núcleo mínimo de Python: archivos

Primero se escriben algunas piezas de lógica:

  • La función de apertura debe usarse primero , después de que se abre el archivo, las siguientes operaciones de escritura y lectura
  • Es necesario definir el propósito del archivo en la función de apertura ( establecer los parámetros de la función de apertura ), como leer, escribir, leer, escribir, agregar, etc.
  • La posición del puntero afecta directamente al contenido de destino.

Este artículo resume principalmente las dos direcciones principales de operaciones básicas de apertura, escritura, lectura y archivo.

1. Una breve descripción general de la apertura, escritura y lectura de archivos

función abierta

open()La función es una función incorporada de Python, utilizada para crear un objeto de archivo , recuerde: con el objeto de archivo, los métodos relacionados se pueden llamar para leer y escribir .
El uso básico es: fileObject = open(xx, x)
Aquí, xx representa el archivo que se abrirá y x se refiere al parámetro.
(Los archivos abiertos se omiten a continuación)

abierto (, r): solo lectura, no crear
abierto (, r +): leer + escribir, no crear
abierto (, w): escribir solo
abierto (, w +): escribir + leer
abierto (, a): escribir en modo anexar (sin cobertura)
abierto (, a +): escribir en modo anexar (sin cobertura) + leer
, es decir, el signo más '+'representa el modo adicional.
Inserte la descripción de la imagen aquí
Nota:

  • La diferencia entre w + y r +
    r+: leer y escribir, si el archivo no existe, reportar un error ;: w+leer y escribir, si el archivo no existe, crear

función de escritura

El método write () se usa para escribir la cadena especificada en el archivo, uso:fileObject.write(str)

función de lectura

fileObject.read(): Texto ——> una cadena completa
fileObject.readline(): una línea ——> una cadena
fileObject.readlines(): todas las líneas ——> una lista con todas las líneas

Función de puntero y búsqueda

El puntero se moverá hacia atrás con sus operaciones de lectura y escritura.

  • openDespués del archivo, el puntero está al principio del contenido del archivo.
  • writeDespués de la función, el puntero está después del contenido escrito.
  • readDespués de la función, después de que el puntero lee el contenido,
    por ejemplo, usando read (), el puntero se moverá desde la posición inicial hasta el final del archivo.

Por lo tanto, si descubre que no obtiene lo que desea, probablemente se deba a que la posición del puntero es incorrecta .
Este caso, debe usarse seek()para especificar la posición del puntero.

Nota: seek(0) apunte al principio

2. Ejemplo sencillo

Los ejemplos aquí detallan el uso de write, read, readline y readlines.

función abierta w模式yw+模式

  • Primera escritura
# 首次写入
with open('write_files.txt', 'w') as f1:
    f1.write('1 2 3\n4 5 6') # 只要没有退出文件,就可以连续写入
    f1.write('7 8 9')

with open('write_files_w+.txt', 'w+') as f2:
    f2.write('a b c\nd e f')  # 只要没有退出文件,就可以连续写入
    f2.write('g h i')

Resultado:
(Contenido escrito en el archivo)
Inserte la descripción de la imagen aquí

  • Escríbelo de nuevo
# 再次写入
with open('write_files.txt', 'w') as f1:
    f1.write('w模式,重新写入...')  # 再次写入会完全清空之前的文件

    # w模式下使用read函数会导致报错(io.UnsupportedOperation: not readable),因为 w 模式不可 读取
    #lines = f1.read()
    #print(lines)

with open('write_files_w+.txt', 'w+') as f2:
    f2.write('w+模式,重新写入...')   # 再次写入会完全清空之前的文件
    f2.seek(0) # 将经过write之后的指针移到文件开头
    red = f2.read()
    f2.seek(0)  # 将经过read之后的指针移到文件开头
    readline = f2.readline()
    f2.seek(0) # 将readline()之后的指针移动到文件开头
    readlines = f2.readlines()
    print(f'read: {red}') # read()读取所有的内容,并且将其作为一个完整的字符串
    print(f'readline: {readline}')  # readline()只读取一行内容,且是字符串格式
    print(f'readlines: {readlines}') # readlines()读取所有行,并将内容放在一个list里(注:由于这里总共只有一行,所以没有用到 for in 来遍历这个列表)

La consola imprime el resultado:

read: w+模式,重新写入...
readline: w+模式,重新写入...
readlines: ['w+模式,重新写入...']

Qué está escrito en el archivo:
Inserte la descripción de la imagen aquí

El modo a y el modo a + de la función abierta

在这里插入代码片
  • un modo
# 1. a 模式
with open('write_file_a.txt', 'a') as f1:
    f1.write('x y z\n1 2 3')
    # w模式下使用read函数会导致报错(io.UnsupportedOperation: not readable),因为 w 模式不可 读取
    # lines = f1.read()
    # print(lines)

resultado:
Inserte la descripción de la imagen aquí

  • modo a +
# 2. a+模式
# 首次
with open('write_file_a+.txt', 'a+') as f2:
    f2.write('A B C')
    lines = f2.read()  # 这里是没有东西打印出来的,因为指针现在在最后面
    print(lines)
# 再次
with open('write_file_a+.txt', 'a+') as f2:
    f2.write('1 2 3')
    f2.seek(0) # 将指针移到头部
    lines = f2.read()  
    print(lines)

Resultado de la impresión:

A B C1 2 3

3. módulo json

import json
data = json.load(open('my_file.json', 'r'))

4. Operaciones de archivo

(Esperando la perfección)

referencia:

  1. Algunas notas sobre la función abierta y la diferencia entre r, r +, w, w +, a, a +
  2. E / S de archivos Python
  3. Explicación detallada de la apertura del archivo python: la diferencia entre a, a +, r +, w +

Supongo que te gusta

Origin blog.csdn.net/Robin_Pi/article/details/114268437
Recomendado
Clasificación