Obtener todos los archivos CSV de un directorio usando Python

Python proporciona muchos paquetes y módulos incorporados para trabajar con archivos CSV en el espacio de trabajo. Se puede acceder a los archivos CSV dentro de los directorios y subdirectorios de un sistema y modificarlos o editarlos. El contenido del archivo CSV se puede imprimir en el shell o se puede guardar en forma de marco de datos y reproducirlo más tarde.

En este artículo, veremos cómo iterar a través de una cantidad n de archivos CSV contenidos dentro de un directorio (carpeta/ruta) que consta de diferentes tipos de archivos, y cómo trabajar con el contenido de estos archivos. Entonces, aplicamos dos métodos diferentes a nuestra tarea. 

Directorio de entrada para ambos enfoques:

CSV utilizado:

CSV 1:

CSV 2:

CSV 3:

Método 1: Usando el módulo Glob

  • Inicialmente, se especifica la ruta del directorio de origen, en este caso, la carpeta «csvfoldergfg» utilizando la variable de ruta.
path = "csvfoldergfg"
  • Para localizar todos los archivos CSV, cuyos nombres pueden ser desconocidos, se invoca el módulo glob y se llama a su método glob. Se proporciona con la ruta usando glob.glob(path) . Esto devuelve la lista de todos los archivos CSV ubicados dentro de la ruta. La expresión regular utilizada es equivalente a *.csv, que coincide con todos los archivos para una extensión .csv.
glob.glob(path, '*.csv')
  • Luego se realiza una iteración sobre estos archivos usando el bucle for y el contenido se lee en un marco de datos, usando el método read_csv() de la biblioteca pandas. La información obtenida con este método puede manipularse.
read_csv(file_contents)

El siguiente código se ejecutó en la máquina local, donde tanto el script como el directorio cuya ruta se especifica se almacenan en el mismo directorio de trabajo:

Python3

# importing the required modules
import glob
import pandas as pd
  
# specifying the path to csv files
path = "csvfoldergfg"
  
# csv files in the path
files = glob.glob(path + "/*.csv")
  
# defining an empty list to store 
# content
data_frame = pd.DataFrame()
content = []
  
# checking all the csv files in the 
# specified path
for filename in files:
    
    # reading content of csv file
    # content.append(filename)
    df = pd.read_csv(filename, index_col=None)
    content.append(df)
  
# converting content to data frame
data_frame = pd.concat(content)
print(data_frame)

Producción:

Método 2: Usando el módulo OS

  • Inicialmente se especifica la ruta del directorio de origen, en este caso, la carpeta “csvfoldergfg” utilizando la variable de string dir_name.
dir_name = "csvfoldergfg"
  • Para localizar todos los archivos, cuyos nombres pueden ser desconocidos, se invoca el módulo os y se llama a su método listdir() . Se proporciona con la ruta usando os.listdir(ruta). Esto devuelve la lista de todos los archivos ubicados dentro de la ruta.
os.listdir(dir_name)
  • Luego se realiza una iteración sobre estos archivos usando el bucle for y el contenido se lee en un marco de datos, usando el método read_csv() de la biblioteca pandas. La información obtenida con este método puede manipularse.
read_csv(file_contents)

El siguiente código se ejecuta en la máquina local:

Python3

# importing the required packaged 
# in python
import pandas as pd
import os
dir_name = "csvfoldergfg"
  
# specifying an empty list for content
content = []
for file in os.listdir(dir_name):
      
    # reading content into data frame
    df = pd.read_csv(file)
    df_list.append(df)
  
final_content = df.append(df for df in df_list)
print(final_content)

Producción:

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *