I hope this is not trivial but I am wondering the following:
If I have a specific folder with n csv
files, how could I iteratively read all of them, one at a time, and perform some calculations on their values?
For a single file, for example, I do something like this and perform some calculations on the 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
I know that I can check how many csv
files there are in a given folder (check here):
import glob for files in glob.glob("*.csv"): print files
But I failed to figure out how to possibly nest the numpy.genfromtxt()
function in a for loop, so that I read in all the csv files of a directory that it is up to me to specify.
EDIT
The folder I have only has jpg
and csv
files. The latter are named eventX.csv
, where X ranges from 1 to 50. The for
loop I am referring to should therefore consider the file names the way they are.
Advertisement
Answer
That’s how I’d do it:
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()