Python:将多个CSV文件中的数据读取到列表

Python:将多个CSV文件中的数据读取到列表,python,arrays,list,csv,multidimensional-array,Python,Arrays,List,Csv,Multidimensional Array,我使用Python3.5在目录和子目录中移动以访问csv文件,并用这些文件中的数据填充数组。代码遇到的第一个csv文件如下所示: 我的代码如下: import matplotlib.pyplot as plt import numpy as np import os, csv, datetime, time, glob gpheight = [] RH = [] dewpt = [] temp = [] windspd = [] winddir = [] dirpath, dirnames

我使用Python3.5在目录和子目录中移动以访问csv文件,并用这些文件中的数据填充数组。代码遇到的第一个csv文件如下所示:

我的代码如下:

import matplotlib.pyplot as plt
import numpy as np
import os, csv, datetime, time, glob

gpheight = []
RH = []
dewpt = []
temp = []
windspd = []
winddir = []

dirpath, dirnames, filenames = next(os.walk('/strm1/serino/DATA'))

count2 = 0
for dirname in dirnames:
    if len(dirname) >= 8:
        try:
            dt = datetime.datetime.strptime(dirname[:8], '%m%d%Y')
            csv_folder = os.path.join(dirpath, dirname)
            for csv_file2 in glob.glob(os.path.join(csv_folder, 'figs', '0*.csv')):
                if os.stat(csv_file2).st_size == 0:
                    continue
                #create new arrays for each case
                gpheight.append([])
                RH.append([])
                temp.append([])
                dewpt.append([])
                windspd.append([])
                winddir.append([])
                with open(csv_file2, newline='') as f2_input:
                    csv_input2 = csv.reader(f2_input,delimiter='    ')
                    for j,row2 in enumerate(csv_input2):
                        if j == 0:
                            continue #skip header row
                        #fill arrays created above
                        windspd[count2].append(float(row2[5]))
                        winddir[count2].append(float(row2[6]))
                        gpheight[count2].append(float(row2[1]))
                        RH[count2].append(float(row2[4]))
                        temp[count2].append(float(row2[2]))
                        dewpt[count2].append(float(row2[3]))
                count2 = count2 + 1
        except ValueError as e:
            pass
我已经设置好为每个新的csv文件创建一个新数组。但是,当我打印第三列(温度)时

它仅部分打印该列数据:

-70.949997
-68.149994
-60.449997
-63.649994
-57.449997
-51.049988
-45.349991
-40.249985
-35.549988
-31.249985
-27.149994
-24.549988
-22.149994
-19.449997
-16.349976
-13.25
-11.049988
-8.949982
-6.75
-4.449982
-2.25
-0.049988
此外,我认为一个相关的问题是,当我只是这样做

print(temp)
它打印

突出显示的部分是属于此csv文件的部分,因此应位于一个数组中。末尾还有其他不应该存在的空数组


在此之前,我已经(未显示)了一段代码,它执行相同的操作,但使用不同的csv文件,并且按照预期工作,将每个文件的数据分离到一个新数组中,没有空数组。谢谢你的帮助

问题在于我使用了
try
pass
。所有符合我的条件的文件都得到了满足,但其中一些文件在读取内容方面存在问题,这导致了我在代码中稍后收到的错误。对于希望使用
try
pass
的任何人,请确保您能够安全地传递代码块可能遇到的任何异常。否则,以后可能会出现问题。如果不传递错误,您可能仍然会遇到错误,但这将迫使您正确地修复它,而不是忽略它。

至少可以通过在for循环中将len(temp)更改为len(temp[0])来解决第一个问题:-PThank You,@AbhishekJebaraj,这确实有点帮助!我通常很难处理多维数组。我发现了问题所在,但我会花时间稍后提供答案。是的,请回答。。谢谢
print(temp)