La guía o código que verás en este post es la resolución más rápida y efectiva que encontramos a esta inquietud o problema.
Solución:
Así es como yo lo haría:
import os
directory = os.path.join("c:\","path")
for root,dirs,files in os.walk(directory):
for file in files:
if file.endswith(".csv"):
f=open(file, 'r')
# perform calculation
f.close()
Creo que buscas algo como esto.
import glob
for file_name in glob.glob(directoryPath+'*.csv'):
x = np.genfromtxt(file_name,delimiter=',')[:,2]
# do your calculations
Editar
Si quieres conseguir todo csv
archivos de una carpeta (incluidas las subcarpetas) que podría usar subprocess
en lugar de glob
(tenga en cuenta que este código solo funciona en sistemas Linux)
import subprocess
file_list = subprocess.check_output(['find',directoryPath,'-name','*.csv']).split('n')[:-1]
for i,file_name in enumerate(file_list):
x = np.genfromtxt(file_name,delimiter=',')[:,2]
# do your calculations
# now you can use i as an index
Primero busca en la carpeta y las subcarpetas todos los nombres de archivo usando el find
comando desde el shell y aplica sus cálculos después.
Usar pandas y glob como paquetes base
import glob
import pandas as pd
glued_data = pd.DataFrame()
for file_name in glob.glob(directoryPath+'*.csv'):
x = pd.read_csv(file_name, low_memory=False)
glued_data = pd.concat([glued_data,x],axis=0)
Recuerda que te concedemos añadir una valoración correcta si te ayudó.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)