Explicación detallada de los scripts de finalización de archivos en la oficina automatizada de Python

784048fd7a1c40698368078678c6d312.png


 

descripción general

 

Hoy explicaré el proceso de implementación del script de finalización de archivos. Esta es una habilidad útil que puede ayudarlo a administrar varios archivos en su computadora. Los requisitos son los siguientes:

8bcd431d941c4d10b01033b1cf1ed601.gif

  • Contenido del requisito: dado un directorio de carpetas para organizar, este script puede extraer todos los archivos en el directorio y clasificarlos en diferentes carpetas según el nombre del sufijo.

  • Capacidades de Python: use los módulos incorporados de Python os y shutil para manipular archivos y directorios, use el módulo glob para hacer coincidir los nombres de los archivos y use la instrucción with para abrir y cerrar archivos.

  • Pasos de implementación:

    • Importar módulos requeridos

    • Definir los directorios a organizar y los subdirectorios a crear

    • Recorra todos los archivos en el directorio para obtener el nombre del archivo y el sufijo

    • Determine a qué subdirectorio pertenece el archivo según el nombre del sufijo y créelo si no existe

    • Use la función de movimiento del módulo shutil para mover el archivo al subdirectorio correspondiente

    • mensaje de finalización de impresión

El tutorial está dirigido a lectores novatos, por lo que intentaré explicar la función de cada línea de código en un lenguaje sencillo y claro, y daré un ejemplo de código completo. Espero que me siga y ejecute y pruebe este script en su propia computadora.

Importar módulos incorporados de python

Primero, necesitamos importar algunos módulos incorporados de python, que pueden ayudarnos a manipular archivos y directorios. El módulo os proporciona algunas funciones básicas del sistema de archivos, como obtener rutas de archivos, crear y eliminar directorios, etc. El módulo shutil proporciona algunas funciones avanzadas de manipulación de archivos, como copiar y mover archivos. El módulo glob nos permite usar comodines para hacer coincidir los nombres de los archivos, por ejemplo, *.txt puede hacer coincidir todos los archivos con el sufijo txt. La declaración with nos permite abrir y cerrar archivos convenientemente sin preocuparnos por olvidar cerrar o excepciones. Aquí está el código para importar el módulo:

# 导入需要的模块
import os
import shutil
import glob

Definir los directorios a organizar y los subdirectorios a crear

A continuación, debemos definir los directorios para organizar y los subdirectorios para crear. Suponemos que el directorio que se ordenará es D:\test, y hay varios tipos de archivos en él, como archivos de texto, archivos de imágenes, archivos de audio, etc. Queremos clasificar estos archivos en diferentes subdirectorios según el nombre del sufijo, por ejemplo, poner archivos txt en D:\test\txt, archivos jpg en D:\test\jpg, archivos mp3 en D:\test\mp3, etc. Podemos usar un diccionario para almacenar la información de estos subdirectorios, la clave es el nombre del sufijo y el valor es la ruta del subdirectorio correspondiente. Aquí está el código que define el directorio:

# 定义要整理的目录和要创建的子目录
source_dir = "D:\\test" # 要整理的目录
sub_dirs = { # 子目录信息
    ".txt": "D:\\test\\txt",
    ".jpg": "D:\\test\\jpg",
    ".mp3": "D:\\test\\mp3"
}

Recorra todos los archivos en el directorio para obtener el nombre del archivo y el sufijo

Luego, necesitamos recorrer todos los archivos en el directorio a organizar para obtener el nombre y el sufijo del archivo. Podemos usar la función listdir del módulo os para obtener todos los archivos y subdirectorios del directorio y luego usar la función path.splitext del módulo os para dividir el nombre del archivo y el sufijo. También necesitamos determinar si es un archivo, porque la función listdir devuelve subdirectorios, no necesitamos tratar con ellos. Podemos usar la función path.isfile del módulo os para determinar si es un archivo. Aquí está el código para atravesar directorios:

# 遍历目录下的所有文件,获取文件名和后缀名
for item in os.listdir(source_dir): # 遍历目录
    if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件
        file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名
        print(file_name, file_ext) # 打印文件名和后缀名

Determine a qué subdirectorio pertenece el archivo según el sufijo

A continuación, debemos determinar a qué subdirectorio pertenece el archivo según el nombre del sufijo y crearlo si no existe. Podemos usar el método get del diccionario para obtener el valor de acuerdo con la clave y devolver Ninguno si la clave no existe. Podemos usar la función path.exists del módulo os para determinar si el subdirectorio existe y, si no existe, usar la función makedirs del módulo os para crearlo. El siguiente es el código para determinar y crear subdirectorios:

# 根据后缀名判断文件属于哪个子目录,如果不存在则创建
        sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径
        if sub_dir: # 如果子目录路径存在
            if not os.path.exists(sub_dir): # 如果子目录不存在
                os.makedirs(sub_dir) # 创建子目录
                print(f"Created {sub_dir}") # 打印创建信息

Mover el archivo al subdirectorio correspondiente

A continuación, necesitamos usar la función de movimiento del módulo shutil para mover el archivo al subdirectorio correspondiente. Necesitamos proporcionar la ruta del archivo de origen y la ruta del archivo de destino como parámetros. Podemos usar la función path.join del módulo os para unir rutas. Aquí está el código para mover el archivo:

# 使用shutil模块的move函数将文件移动到对应的子目录
            source_file = os.path.join(source_dir, item) # 源文件路径
            target_file = os.path.join(sub_dir, item) # 目标文件路径
            shutil.move(source_file, target_file) # 移动文件
            print(f"Moved {source_file} to {target_file}") # 打印移动信息

mensaje de finalización de impresión

Finalmente, necesitamos imprimir un mensaje de finalización para que el usuario sepa que el trabajo de acabado está completo. Aquí está el código que imprime el mensaje de finalización:

# 打印完成信息
print("Done!")

De esta forma, hemos completado un sencillo script de organización de archivos. El código completo es el siguiente:

# 导入需要的模块
import os
import shutil
import glob

# 定义要整理的目录和要创建的子目录
source_dir = "D:\\test" # 要整理的目录
sub_dirs = { # 子目录信息
    ".txt": "D:\\test\\txt",
    ".jpg": "D:\\test\\jpg",
    ".mp3": "D:\\test\\mp3"
}

# 遍历目录下的所有文件,获取文件名和后缀名
for item in os.listdir(source_dir): # 遍历目录
    if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件
        file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名
        print(file_name, file_ext) # 打印文件名和后缀名

        # 根据后缀名判断文件属于哪个子目录,如果不存在则创建
        sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径
        if sub_dir: # 如果子目录路径存在
            if not os.path.exists(sub_dir): # 如果子目录不存在
                os.makedirs(sub_dir) # 创建子目录
                print(f"Created {sub_dir}") # 打印创建信息

            # 使用shutil模块的move函数将文件移动到对应的子目录
            source_file = os.path.join(source_dir, item) # 源文件路径
            target_file = os.path.join(sub_dir, item) # 目标文件路径
            shutil.move(source_file, target_file) # 移动文件
            print(f"Moved {source_file} to {target_file}") # 打印移动信息

# 打印完成信息
print("Done!")

Si ejecuta este script en su computadora, verá un resultado similar al siguiente:

test1 .txt
test2 .jpg
test3 .mp3
Created D:\test\txt
Moved D:\test\test1.txt to D:\test\txt\test1.txt
Created D:\test\jpg
Moved D:\test\test2.jpg to D:\test\jpg\test2.jpg
Created D:\test\mp3
Moved D:\test\test3.mp3 to D:\test\mp3\test3.mp3
Done!

 

Resumir

Esta es la automatización de la oficina de Python, que explica el proceso de implementación de los scripts de finalización de archivos. Espero que puedas aprender algo útil y mejorar tu habilidad de python en la práctica. Si tiene alguna pregunta o sugerencia, por favor déjeme un mensaje. ¡Gracias por leer y seguir!

 

 

Supongo que te gusta

Origin blog.csdn.net/Rocky006/article/details/131844788
Recomendado
Clasificación