Directorio de artículos
os
El módulo y el
shutil
módulo es la forma principal de tratar con el archivo / directorio de Python. El módulo os proporciona una forma conveniente de utilizar funciones relacionadas con el sistema operativo, y el módulo shutil es una herramienta avanzada de manipulación de archivos / directorios.
Procesamiento de documentos
os
El módulo proporciona algunas funciones convenientes para utilizar los recursos del sistema operativo, como leer archivos en el directorio de recursos, ver todo el contenido de los archivos en una determinada ruta en la línea de comandos, etc.
Obtener el tipo de sistema
El desarrollo de compatibilidad del código para adaptarse a diferentes sistemas operativos se puede resolver fácilmente juzgando el tipo de sistema operativo.
import os
import sys
print(os.name) # 返回nt代表Windows,posix代表Linux
print(sys.platform) # 更详细信息
Obtener el entorno del sistema
Al establecer variables de entorno, a menudo se llaman módulos environ
. os.environ
Las variables de entorno del sistema se devuelven en forma de diccionario. Para obtener valores de atributos específicos, puede utilizar índices o métodos getenv()
:
import os
print(os.environ)
print(os.environ['PATH'])
print(os.getenv('PATH'))
Ejecutar comandos del sistema
system()
Los comandos de shell se pueden ejecutar utilizando el método del módulo os . La ejecución normal devolverá 0. El formato utilizado es os.system("bash command")
.
Cuando se escribe en una que no es una consola, system()
solo se llaman pero no se ejecutan los comandos del sistema, y los resultados de la ejecución se pueden leer a través del objeto de popen()
retorno de la función file
.
import os
os.system('ping www.baidu.com')
os.popen('ping www.baidu.com').read()
Manipular directorios y archivos
Una de las funciones más comunes del desarrollo de Python cuando se usa el módulo os para manipular directorios y archivos.
método | Descripción | Ejemplo |
os.getcwd () | Obtener la ruta del directorio actual | |
os.chdir ('ruta de destino') | Cambiar el directorio de secuencia de comandos actual | |
os.listdir (ruta) | Lista todos los archivos en el directorio | |
os.mkdir (ruta) | Crea un solo directorio | |
os.makedirs (ruta) | Crea un directorio de varios niveles | |
os.rmdir (ruta) | Eliminar directorios vacíos de un solo nivel | |
os.removedirs (ruta) | Eliminar directorios de varios niveles | |
os.rename ("nombre de archivo o directorio", "nombre de destino") | Cambiar el nombre del directorio o archivo | |
os.path.abspath () | Obtener ruta absoluta | |
os.path.split (ruta) | Descomponer la ruta en (carpeta, nombre de archivo) Si el último carácter de la cadena de ruta es \, solo la parte de la carpeta tiene un valor; si no hay \ en la cadena de ruta, solo la parte del nombre del archivo tiene un valor; si el cadena de ruta Si hay \ y ya no está al final, el nombre del archivo de la carpeta tiene un valor. |
|
os.path.join (ruta1, ruta2) | Combinar caminos | |
os.path.dirname (ruta) | Obtenga la parte de la carpeta en la ruta | |
os.path.basename (ruta) | Obtenga el nombre del archivo en la ruta | |
os.path.exists (ruta) | Determine si el archivo o la carpeta existe | |
os.path.isfile (ruta) | Determine si la ruta es un archivo | |
os.path.isdir (ruta) | Determine si la ruta es un directorio | |
os.path.getsize (ruta) | Obtener el tamaño de archivo o carpeta | |
os.path.getctime (ruta) | Obtener la hora de creación del archivo o carpeta | |
os.path.getatime (ruta) | Obtener la última hora de acceso a un archivo o carpeta | |
os.path.getmtime (ruta) | Obtener la última hora de modificación de un archivo o carpeta | |
os.sep () | Separador de ruta | |
os.extsep () | Separador entre nombre de archivo y sufijo | |
os.pathsep () | Separador de ruta | |
os.linesep () | Salto de línea |
(
Información intersticial anti-escalada) Dirección CSDN de Blogger: https://wzlodq.blog.csdn.net/
Procesamiento avanzado de archivos y directorios
En comparación con el
os
módulo, elshutil
módulo se utiliza para el procesamiento avanzado de archivos y directorios, y proporciona funciones como la asignación de archivos de apoyo, movimiento, eliminación, compresión y descompresión.
Copiar archivos
shutil
La función principal del módulo es el archivo de asignación y hay alrededor de siete implementaciones:
-
shutil.copyfileobj(file1,file2)
Sobrescribir copia
Sobrescribir archivo2 con el contenido de archivo1, archivo1 y archivo2 representan objetos de archivo abiertos. -
shutil.copyfile(file1,file2)
Sobrescribir y copiar
también es sobrescribir, pero sin abrir el archivo, se sobrescribe directamente con el nombre del archivo (el código fuente todavía se llama copyfileobj). -
shutil.copymode(file1,file2)
Copia de permisos
Solo se copian los permisos del archivo, el contenido del archivo, los grupos y los usuarios no se cambian y no se devuelven objetos. -
shutil.copystart(file1,file2)
Copia de estado Copia
toda la información de estado del archivo, incluidos los permisos, los grupos, los usuarios y la hora, sin devolver los objetos. -
shutil.copy(file1,file2)
Contenido y permisos de copia
copiar el contenido y los permisos de un archivo es equivalente a ejecutar copyfile primero y luego copysmode. -
shutil.copy2(file1,file2)
Copia de contenido y permisos Copiar el contenido y toda la información de estado del archivo equivale a ejecutar primero el copyfile y luego el copystart. -
shutil.copytree()
Copia recursiva Copia
recursiva el contenido del archivo y la información de estado
Mover archivos
Utilice funciones shutil.move()
para mover archivos o renombrarlos de forma recursiva y volver al destino. Si el destino es un directorio existente, src se mueve al directorio actual; si el destino ya existe y no es un directorio, puede sobrescribirse.
Leer y archivar archivos comprimidos
Utilice la función para shutil.make_archive()
crear un archivo de almacenamiento y devolver el nombre del archivo.
La sintaxis es la siguiente:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])
- base_name es el nombre del archivo que se creará, incluida la ruta
- formato significa que se puede seleccionar el formato de compresión, zip, tar o bztar
- root_dir es el directorio de archivo
import shutil
path_1 = r'D:\PycharmProjects\Hello'
path_2 = r'D:\PycharmProjects\Hello\shutil-test'
new_path = shutil.make_archive(path_2,'zip',path_1)
print(new_path)
descomprimir archivos
Utilice la función para shutil.unpack_archive(filename[,extract_dir[,format]])
analizar el desembalaje.
- nombre de archivo es la ruta completa del archivo
- extract_dir es el nombre del directorio de destino para extraer el archivo
- formato es el formato del archivo descomprimido
import shutil
import os
shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\\testdir')
print(os.listdir('D:\\testdir'))
resumen
Cabe señalar que en diferentes sistemas operativos, los separadores de ruta son diferentes y deben tenerse en cuenta al procesar archivos. También se puede usar os.sep()
para reemplazar el separador de archivos, debido a la excepción del programa causada por el sistema operativo. Además, al manejar archivos, a menudo debe prestar atención a los permisos de los archivos, así como a la diferencia entre archivos y carpetas, y al uso de la recursividad.
El blog de la serie Python se actualiza continuamente
El original no es fácil, por favor no reimprima (
esto no es peor para visitas adineradas) la
página de inicio del blogger: https://wzlodq.blog.csdn.net/WeChat cuenta
pública: si el artículo es útil para usted, recuerde hacer clic en tres enlaces ❤唔仄lo咚锵