Python 读取多个CSV文件,在空行处剪切,排序列数组

Python 读取多个CSV文件,在空行处剪切,排序列数组,python,arrays,csv,Python,Arrays,Csv,我想用Python3.6读取多个CSV文件,跳过标题并停在第一个空行。然后,我只想提取每个csv文件的第四列,并将其填充到数组中,但排序方式如最后所示 我的文件: 到目前为止,这是我的代码,但我对输出顺序不满意,也许还有更优雅的方法 csvdata_d=[] for i in range(timestep): # timestep = number of files with open(csvname[i]) as f: reader = csv.reader(f)

我想用Python3.6读取多个CSV文件,跳过标题并停在第一个空行。然后,我只想提取每个csv文件的第四列,并将其填充到数组中,但排序方式如最后所示

我的文件:

到目前为止,这是我的代码,但我对输出顺序不满意,也许还有更优雅的方法

csvdata_d=[]

for i in range(timestep):   # timestep = number of files
    with open(csvname[i]) as f:
        reader = csv.reader(f)
        readerlist=list(reader)
        for row in readerlist[2:]: # skip two header lines 
            if len(row) == 0:      # empty line definition
                break            
            else:
                row=list(row)
                csvdata_d.append(row[3]) # fourth column

print(csvdata_d)
我的输出是:csvdata_d=['1.1','1.2','1.3','2.1','2.2','2.3','3.1','3.2','3.3']

但我希望它是['1.1','2.1','3.1',['1.2','2.2','3.2',['1.3','2.3','3.3']


谢谢你的帮助。

我用numpys genfromtxt模块和一个循环找到了空行

headsize=2 #lines toskip at beginning
csvdata=[]
measuredata=[]

with open (csvname[0])as f: #Measurement of file to first empty row
    reader = csv.reader(f)
    readerlist=list(reader)
    lengthfile=(len(readerlist))
    for row in readerlist[headsize:]:
        if len(row)== 0:
            break
        else:
          measuredata.append(list(row[3]))  

skfooter=int(lengthfile-(len(measuredata)+(Headsize+1))) #calc number of rows below empty line

for i in range(timestep):
    data=np.genfromtxt((csvname[i]), delimiter=',', skip_header=headsize,   usecols=3, skip_footer=skfooter)
    csvdata.append(data)


s=[]
for i in range (len(csvdata[0])):
    s.append([item[i] for item in csvdata])    
print(s)

所有的CSV文件在空白行之前都有相同的行数吗?否则,您需要的格式将是模糊的。是的,它们的行数都相同。您在正确的轨道上。如果你想要一个列表,那就做一个。