[英]Reading multiple csv files from a directory in python
我无法从目录中读取多个csv文件。
该代码在为第一个文件运行时运行完美,但是在第二个文件上却出现错误。 以下是代码的相关部分。 (但是,对于该问题而言,某些部分是不必要的,我只是将其保留,因此更有意义):
def get_data(filename):
'''function to read the data form the input csv file to use in the analysis'''
with open(filename, 'r') as f:
reader = csv.reader(f,delimiter=',')
#returns all the data from the csv file in list form
return list(reader)
path='C:\Users\AClayton\Desktop\AW189 Data'
for infile in glob.glob(os.path.join(path, '*.csv')):
# infile stores the complete path of the file
print "Current File Being Processed is: " + infile
#use split to seperate the path and name of the file
(PATH, FILENAME) = os.path.split(infile)
print " PATH is " + PATH
print " FILENAME is " + FILENAME
all_data=[]
#adds the data from the csv file to a blank list so it can be operated on
all_data.extend(get_data(infile))
#Create array so numerical operations may be performed
arrdata=np.array(all_data)
current_tracks=establish_current_tacks(arrdata,nb)
rel_values=relative_track(current_tracks,nb)
avg_rel_track=averaged_rel_track(navg, rel_values, nb)
avg_rel_track_nan=avg_rel_track_nan(avg_rel_track)
sd_rel_track_sum=sd_of_rel_track(navg, rel_values, nb)
sd_index=sd_index(sd_rel_track_sum)
这是我的错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
C:\Users\AClayton\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.3.1262.win-x86_64\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
174 else:
175 filename = fname
--> 176 exec compile(scripttext, filename, 'exec') in glob, loc
177 else:
178 def execfile(fname, *where):
C:\Users\AClayton\Desktop\currentmethod06_09_2013work-1.py in <module>()
204 rel_values=relative_track(current_tracks,nb)
205 avg_rel_track=averaged_rel_track(navg, rel_values, nb)
--> 206 avg_rel_track_nan=avg_rel_track_nan(avg_rel_track)
207 sd_rel_track_sum=sd_of_rel_track(navg, rel_values, nb)
208 sd_index=sd_index(sd_rel_track_sum)
TypeError: 'numpy.ndarray' object is not callable
我不确定是什么引起了这个问题。 它似乎不是将函数作为函数读取,而是作为早期的数组读取? 非常感谢您的任何建议
这很奇怪:
avg_rel_track_nan=avg_rel_track_nan(avg_rel_track)
您可能的意思是:
avg_rel_track_nan=averaged_rel_track_nan(avg_rel_track)
我无法确定发生了什么,因为您的很多代码都依赖于其他代码,但是您正在将(据说)函数调用的结果分配给该函数的名称。 我猜那不是你的本意。
尝试:
def get_data(filename):
'''function to read the data form the input csv file to use in the analysis'''
reader = [] # Just in case the file open fails
with open(filename, 'r') as f:
reader = csv.reader(f,delimiter=',')
#returns all the data from the csv file in list form
#f.close() # May need to close the file when done
return list(reader) # only return the reader when you have finished.
我认为问题的一部分是您从with中返回(而不是关闭文件)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.