Spero che questo non è banale, ma mi chiedo quanto segue:Leggere in tutti i file csv da una directory con Python
Se ho una cartella specifica con ncsv
file, come potrei iterativo letto tutti loro, uno alla volta, ed eseguono alcuni calcoli sui loro valori?
per un singolo file, per esempio, faccio qualcosa di simile ed eseguire alcuni calcoli sul x
array:
import csv
import os
directoryPath=raw_input('Directory path for native csv file: ')
csvfile = numpy.genfromtxt(directoryPath, delimiter=",")
x=csvfile[:,2] #Creates the array that will undergo a set of calculations
So che posso verificare quante csv
file ci sono in una determinata cartella (controllare here):
import glob
for files in glob.glob("*.csv"):
print files
Ma non sono riuscito a capire come eventualmente nido la funzione numpy.genfromtxt()
in un ciclo for, in modo che ho letto in tutti i file CSV di una directory che spetta a me di speci fy.
EDIT
La cartella ho ha solo jpg
e csv
file. Questi ultimi sono denominati eventX.csv
, dove X varia da 1 a 50. Il ciclo for
a cui mi riferisco dovrebbe pertanto considerare i nomi dei file come sono.
La riga 'f.close()' può essere posizionata subito dopo aver definito 'x = csvfile [:, 2]'? Il numero '2' è solo esemplificativo. – FaCoffee
E, se posso aggiungere, il tuo codice controlla tutti i file 'csv' in TUTTE le cartelle all'interno di' directory'? – FaCoffee
come nota, il modo consigliato di aprire i file è 'con open (file) come file' questo ha il vantaggio di chiudersi automaticamente quando fuori dal campo di applicazione – Busturdust