Volver a la página principal
martes 11 febrero 2025
21

Cómo usar rarfile para abrir y leer un archivo .rar en Python

La biblioteca rarfile permite abrir y extraer archivos .rar en Python de manera sencilla. Es útil cuando necesitas manipular archivos comprimidos en formato RAR sin depender de herramientas externas.

Instalación de rarfile

Antes de usar rarfile, necesitas instalar la biblioteca y asegurarte de tener UnRAR instalado en tu sistema.

1. Instalar rarfile:

pip install rarfile

2. Instalar UnRAR (necesario para extraer archivos .rar):

  • Windows: Descarga UnRAR.exe desde Rarlab y colócalo en una ubicación accesible.
  • Linux (Debian/Ubuntu):
sudo apt install unrar
  • MacOS (usando Homebrew):
brew install unrar

Configurar rarfile

Después de instalar UnRAR, debes configurarlo en Python:

import rarfile

# Configurar la ruta de UnRAR manualmente (si es necesario)
rarfile.UNRAR_TOOL = "ruta/a/unrar"  # Opcional si unrar está en el PATH

Leer el contenido de un archivo .rar

Puedes listar los archivos dentro de un .rar con el siguiente código:

import rarfile

# Abrir el archivo .rar
archivo_rar = rarfile.RarFile("archivo.rar")

# Listar archivos dentro del .rar
for archivo in archivo_rar.namelist():
    print(archivo)

# Cerrar el archivo
archivo_rar.close()

Extraer archivos de un .rar

Para extraer todos los archivos:

import rarfile

# Abrir el archivo .rar
archivo_rar = rarfile.RarFile("archivo.rar")

# Extraer todo el contenido en una carpeta específica
archivo_rar.extractall("carpeta_destino")

# Cerrar el archivo
archivo_rar.close()

Para extraer un archivo específico:

archivo_rar.extract("archivo_dentro_del_rar.txt", "carpeta_destino")

Leer un archivo dentro del .rar sin extraerlo

Si deseas leer el contenido de un archivo sin extraerlo, puedes usar:

with rarfile.RarFile("archivo.rar") as archivo_rar:
    with archivo_rar.open("documento.txt") as archivo:
        contenido = archivo.read().decode("utf-8")
        print(contenido)

Referencia oficial

Para más detalles, consulta la documentación de rarfile:

Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer