我有大约这样的~8000个.txt文件,每个文件有大约200行数据(每行不同),有两行标题。
我想读掉这些数字。 我试图将文件保存在1个3D数组中,1个索引对应于文件编号,其他2个索引是每个文件的2D数据数组,但我是python中的新手所以不知道该怎么做。 (实际上它不需要是3D数组,但我不知道如何制作2D数组列表) 我在这里搜索并尝试了类似的东西
import glob
import numpy as np
file_list = glob.glob('data/*.txt')
data = []
for file_path in file_list:
data.append(
np.genfromtxt(file_path, delimiter=' ', skip_header=2))
但这会发出这样的错误,
第#184行(有41列而不是42列)
所以我猜每个文件应该有相同的行号来应用它。
我也试过这样的东西,从一个文件制作2D数组的扩展版本。
import numpy as np
import glob
list=glob.glob('data/*.txt')
i=0
for file_name in list:
f0=open(file_name,'r')
header1,header2=[],[]
header1.append(f0.readline())
header2.append(f0.readline())
time, x,y,z,px,py,pz=[],[],[],[],[],[],[]
for line in f0:
line=line.strip()
columns=line.split()
time[i].append(float(columns[0]))
x[i].append(float(columns[1]))
y[i].append(float(columns[2]))
z[i].append(float(columns[3]))
px[i].append(float(columns[4]))
py[i].append(float(columns[5]))
pz[i].append(float(columns[6]))
i+=1
但这会使'列表索引超出范围'错误。我猜这与维度有关,但不确定如何解决这个问题。
还有其他方法可以做到这一点,还是解决这个问题的方法?