Gestión de archivos y directorios de Python

En este tutorial, aprenderá sobre la administración de archivos y directorios en Python, es decir, crear un directorio, renombrarlo, listar todos los directorios y trabajar con ellos.

Video: Módulo Python OS

Directorio de Python

Si hay una gran cantidad de archivos para manejar en nuestro programa Python, podemos organizar nuestro código dentro de diferentes directorios para hacer las cosas más manejables.

Un directorio o carpeta es una colección de archivos y subdirectorios. Python tiene el osmódulo que nos proporciona muchos métodos útiles para trabajar con directorios (y archivos también).

Obtener directorio actual

Podemos obtener el directorio de trabajo actual usando el getcwd()método del osmódulo.

Este método devuelve el directorio de trabajo actual en forma de cadena. También podemos usar el getcwdb()método para obtenerlo como objeto de bytes.

 >>> import os >>> os.getcwd() 'C:\Program Files\PyScripter' >>> os.getcwdb() b'C:\Program Files\PyScripter'

La barra invertida adicional implica una secuencia de escape. La print()función lo representará correctamente.

 >>> print(os.getcwd()) C:Program FilesPyScripter

Cambio de directorio

Podemos cambiar el directorio de trabajo actual usando el chdir()método.

La nueva ruta a la que queremos cambiar debe proporcionarse como una cadena para este método. Podemos usar tanto la barra inclinada hacia adelante como la barra inclinada /hacia atrás para separar los elementos de la ruta.

Es más seguro usar una secuencia de escape cuando se usa la barra inclinada hacia atrás.

 >>> os.chdir('C:\Python33') >>> print(os.getcwd()) C:Python33

Listar directorios y archivos

Todos los archivos y subdirectorios dentro de un directorio se pueden recuperar utilizando el listdir()método.

Este método toma una ruta y devuelve una lista de subdirectorios y archivos en esa ruta. Si no se especifica una ruta, devuelve la lista de subdirectorios y archivos del directorio de trabajo actual.

 >>> print(os.getcwd()) C:Python33 >>> os.listdir() ('DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools') >>> os.listdir('G:\') ('$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information')

Crear un directorio nuevo

Podemos crear un nuevo directorio usando el mkdir()método.

Este método toma la ruta del nuevo directorio. Si no se especifica la ruta completa, el nuevo directorio se crea en el directorio de trabajo actual.

 >>> os.mkdir('test') >>> os.listdir() ('test')

Cambio de nombre de un directorio o un archivo

El rename()método puede cambiar el nombre de un directorio o un archivo.

Para cambiar el nombre de cualquier directorio o archivo, el rename()método toma dos argumentos básicos: el nombre antiguo como primer argumento y el nuevo nombre como segundo argumento.

 >>> os.listdir() ('test') >>> os.rename('test','new_one') >>> os.listdir() ('new_one')

Eliminar directorio o archivo

Un archivo se puede quitar (eliminar) usando el remove()método.

De manera similar, el rmdir()método elimina un directorio vacío.

 >>> os.listdir() ('new_one', 'old.txt') >>> os.remove('old.txt') >>> os.listdir() ('new_one') >>> os.rmdir('new_one') >>> os.listdir() ()

Nota : el rmdir()método solo puede eliminar directorios vacíos.

Para eliminar un directorio que no esté vacío, podemos usar el rmtree()método dentro del shutilmódulo.

 >>> os.listdir() ('test') >>> os.rmdir('test') Traceback (most recent call last):… OSError: (WinError 145) The directory is not empty: 'test' >>> import shutil >>> shutil.rmtree('test') >>> os.listdir() ()

Articulos interesantes...