【发布时间】:2019-05-16 13:47:21
【问题描述】:
我正在遍历多个文件并读出我想要的信息,这些信息被存储在一个 numpy 数组中,然后我将其写入具有唯一名称的 h5py 文件对象(例如 outputdataset_1、outputdataset_2 ......) ,但是当脚本运行时,它只会将最终数据集写入文件 (outputdataset_numFiles)。
为了简单起见,所有的文件解析都被抽象成一个if循环和函数“get_data”,公平有效地假设当代码到达文件末尾时,pts数据结构包含所有正确的值。
for num in range(1,numFiles):
with h5py.File("outputFileName.hdf5", "w") as f:
with open("fileAddress" +str(num)) as file:
lineNum = 0
while True:
line = file.readline(lineNum)
if not line and lineNum != 0:
s = 'outputdataset_' +str(num)
dset = f.create_dataset(s,pts.shape,data=pts)
break;
if line == criteria:
pts = get_data(pts,line)
lineNum += 1
【问题讨论】:
-
您打开(并覆盖)每个输入文件的输出文件。您读取了一个非空行并将值放入
pts。但你对此无能为力。您不应该从多行收集值吗?仅写入最后一个pts值。我认为您需要练习一个更简单的案例,您可以详细了解迭代。 -
我的错误我将代码简化了一点,我可以向您保证,从文件中收集的数据工作正常。我现在将编辑示例。