[Conceptos básicos de Python] Day10-Operaciones de archivos de Python (operaciones básicas de archivos, copia de seguridad de archivos, operaciones de archivos y carpetas)

Operaciones de archivo

la meta

  • El rol de las operaciones de archivos
  • Operación básica de archivos
    • encender
    • Lee y escribe
    • apagar
  • Copia de seguridad de archivos
  • Operaciones de archivos y carpetas

1. El papel de las operaciones con archivos

Pensando: ¿Qué es un archivo?

Inserte la descripción de la imagen aquí

Pensando: ¿Qué incluye la operación de archivos?

Respuesta: Abrir, cerrar, leer, escribir, copiar ...

Pensando: ¿Cuál es la función de las operaciones de archivos?

Respuesta: Leer contenido, escribir contenido, hacer copias de seguridad de contenido ...

Resumen: la función de las operaciones de archivos esAlmacene parte del contenido (datos), de modo que el programa se pueda usar directamente cuando se ejecute el programa la próxima vez, en lugar de hacer una nueva copia, ahorrando tiempo y esfuerzo

2. El funcionamiento básico del archivo

2.1 Pasos de la operación de archivos

  1. abre un archivo
  2. Operaciones de lectura y escritura
  3. Cerrar el archivo

Nota: Solo puede abrir y cerrar el archivo sin ninguna operación de lectura o escritura.

2.1.1 Abierto

En Python, usando la función de abrir, puede abrir un archivo existente o crear un nuevo archivo, la sintaxis es la siguiente:

open(name, mode)

nombre: una cadena del nombre del archivo de destino que se abrirá (puede incluir la ruta específica donde se encuentra el archivo).

modo: establece el modo de apertura del archivo (modo de acceso): solo lectura, escritura, anexar, etc.

2.1.1.1 Modo de archivo abierto

modo descripción
r Abra el archivo como de solo lectura. El puntero del archivo se colocará al principio del archivo. Este es el modo por defecto.
rb Abra un archivo en formato binario para solo lectura. El puntero del archivo se colocará al principio del archivo. Este es el modo por defecto.
r + Abra un archivo para leer y escribir. El puntero del archivo se colocará al principio del archivo.
rb + Abra un archivo en formato binario para leer y escribir. El puntero del archivo se colocará al principio del archivo.
w Abra un archivo solo para escritura. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo.
wb Abra un archivo en formato binario solo para escritura. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo.
w + Abra un archivo para leer y escribir. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo.
wb + Abra un archivo en formato binario para leer y escribir. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo.
a Abra un archivo para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. En otras palabras, el contenido nuevo se escribirá después del contenido existente. Si el archivo no existe, cree un nuevo archivo para escribir.
desde Abra un archivo en formato binario para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. En otras palabras, el contenido nuevo se escribirá después del contenido existente. Si el archivo no existe, cree un nuevo archivo para escribir.
a + Abra un archivo para leer y escribir. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. Cuando se abre el archivo, estará en modo anexar. Si el archivo no existe, cree un nuevo archivo para leer y escribir.
desde + Abra un archivo en formato binario para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. Si el archivo no existe, cree un nuevo archivo para leer y escribir.

2.1.1.2 Experiencia rápida

f = open('test.txt', 'w')

Nota: Este fes openel objeto de archivo de la función.

2.1.2 Método de objeto de archivo

2.1.2.1 Escritura
  • gramática
对象对象.write('内容')
  • Experiencia
# 1. 打开文件
f = open('test.txt', 'w')

# 2.文件写入
f.write('hello world')

# 3. 关闭文件
f.close()

Nota:

  1. waModo de suma : si el archivo no existe, cree el archivo; si el archivo existe, el wmodo se borra y luego se escribe, y el amodo se agrega directamente al final.
  2. rModo: informe de un error si el archivo no existe.
2.1.2.2 Leer
  • leer()
文件对象.read(num)

num representa la longitud de los datos que se leerán del archivo (en bytes). Si no se pasa num, significa leer todos los datos en el archivo.

  • readlines ()

readlines puede leer el contenido de todo el archivo de una vez en una fila y devolver una lista, donde cada fila de datos es un elemento.

f = open('test.txt')
content = f.readlines()

# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n', 'ccc']
print(content)

# 关闭文件
f.close()
  • readline ()

readline () lee el contenido una línea a la vez.

f = open('test.txt')

content = f.readline()
print(f'第一行:{content}')

content = f.readline()
print(f'第二行:{content}')

# 关闭文件
f.close()

Inserte la descripción de la imagen aquí

2.1.2.3 buscar ()

Rol: se utiliza para mover el puntero del archivo.

La sintaxis es la siguiente:

文件对象.seek(偏移量, 起始位置)

punto de partida:

  • 0: comienzo de archivo
  • 1: ubicación actual
  • 2: Fin de archivo

2.1.3 Cerrar

文件对象.close()

3. Copia de seguridad de archivos

Requisito: El usuario ingresa cualquier nombre de archivo en el directorio actual y el programa completa la función de respaldo del archivo (el nombre del archivo de respaldo es el sufijo xx [respaldo], por ejemplo: prueba [respaldo] .txt).

3.1 Paso

  1. Reciba el nombre de archivo ingresado por el usuario
  2. Planificar el nombre del archivo de copia de seguridad
  3. Datos de escritura del archivo de copia de seguridad

3.2 Implementación del código

  1. Recibir el nombre del archivo de destino de entrada del usuario
old_name = input('请输入您要备份的文件名:')
  1. Planificar el nombre del archivo de copia de seguridad

    2.1 Extraer el sufijo del archivo de destino

    2.2 El nombre del archivo de la copia de seguridad de la organización, sufijo xx [copia de seguridad]

# 2.1 提取文件后缀点的下标
index = old_name.rfind('.')

# print(index)  # 后缀中.的下标

# print(old_name[:index])  # 源文件名(无后缀)

# 2.2 组织新文件名 旧文件名 + [备份] + 后缀
new_name = old_name[:index] + '[备份]' + old_name[index:]

# 打印新文件名(带后缀)
# print(new_name)
  1. Datos de escritura del archivo de copia de seguridad

    3.1 Archivo de código abierto y archivo de respaldo

    3.2 Escriba los datos del archivo de origen en el archivo de respaldo

    3.3 Cerrar el archivo

# 3.1 打开文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 将源文件数据写入备份文件
while True:
    con = old_f.read(1024)
    if len(con) == 0:
        break
    new_f.write(con)

# 3.3 关闭文件
old_f.close()
new_f.close()

3.3 Pensamiento

Si el usuario ingresa .txt, este es un archivo no válido, ¿cómo se puede cambiar el programa para restringir solo los nombres de archivo válidos para respaldar?

Respuesta: Solo agregue juicio de condición.

old_name = input('请输入您要备份的文件名:')

index = old_name.rfind('.')


if index > 0:
    postfix = old_name[index:]

new_name = old_name[:index] + '[备份]' + postfix

old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

while True:
    con = old_f.read(1024)
    if len(con) == 0:
        break
    new_f.write(con)

old_f.close()
new_f.close()

4. Operaciones de archivos y carpetas

La operación de archivos y carpetas en Python requiere el uso de funciones relacionadas en el módulo del sistema operativo. Los pasos específicos son los siguientes:

  1. Importar el módulo del sistema operativo
import os
  1. Usar osfunciones relacionadas con el módulo
os.函数名()

4.1 Cambio de nombre de archivo

os.rename(目标文件名, 新文件名)

4.2 Eliminar archivos

os.remove(目标文件名)

4.3 Crear una carpeta

os.mkdir(文件夹名字)

4.4 Eliminar carpeta

os.rmdir(文件夹名字)

4.5 Obtener el directorio actual

os.getcwd()

4.6 Cambiar el directorio predeterminado

os.chdir(目录)

4.7 Obtener listado de directorio

os.listdir(目录)

5. Casos de solicitud

Requisito: para modificar los nombres de los archivos en lotes, puede agregar o eliminar la cadena de caracteres especificada.

  • paso
  1. Establecer el logotipo para agregar y eliminar cadenas
  2. Obtener todos los archivos en el directorio especificado
  3. Agregue / elimine la cadena especificada al nombre del archivo original para construir un nuevo nombre
  4. os.rename () renombrar
  • Código
import os

# 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
flag = 1

# 获取指定目录
dir_name = './'

# 获取指定目录的文件列表
file_list = os.listdir(dir_name)
# print(file_list)


# 遍历文件列表内的文件
for name in file_list:

    # 添加指定字符
    if flag == 1:
        new_name = 'Python-' + name
    # 删除指定字符
    elif flag == 2:
        num = len('Python-')
        new_name = name[num:]

    # 打印新文件名,测试程序正确性
    print(new_name)
    
    # 重命名
    os.rename(dir_name+name, dir_name+new_name)

Seis. Resumen

  • Pasos de la operación de archivo

    • encender
    文件对象 = open(目标文件, 访问模式)
    
    • operando

      • leer
      文件对象.read()
      文件对象.readlines()
      文件对象.readline()
      
      • escribir
      文件对象.write()
      
      • buscar()
    • apagar

    文件对象.close()
    
  • Modo de acceso principal

    • w: escribe, crea un nuevo archivo si el archivo no existe
    • r: leer, informar de un error si el archivo no existe
    • a: Adjuntar
  • Operaciones de archivos y carpetas

    • Cambiar nombre: os.rename ()
    • Obtener el directorio actual: os.getcwd ()
    • Obtenga la lista de directorios: os.listdir ()

Supongo que te gusta

Origin blog.csdn.net/qq_38454176/article/details/112230880
Recomendado
Clasificación