我正在尝试解析包含两组数据的文件中的数据。该文件包含文件前40行的标题信息,然后是1000行两列数据。附加文件已添加到文件中,格式相同。也就是说,行1041到1081具有第二文件的头信息,接着是1000行的两列数据。两个数据部分的第一列是相同的。因此,我想解析数据文件以删除标题部分并将数据保存到3x1000数组。
该文件组织为:
第1行://标头信息
第2行://标题信息
...
第40行:1.000e3 -4.000e-3
第41行:1.001e3 -4.324e-3
...
第1000行:10.000e3 -78.678e-3
第1001行://标头信息
第1002行://标头信息
第1041行:1.000e3 -16.000e-3
第41行:1.001e3 -14.324e-3
...
2000行:10.000e3 -22.178e-3
我想解析柱状数据并输出到格式为
的数组[1.000e3,-4.000e-3,-16.000e-3]
[1.001e3,-4.432e-3,-14.423e-3]
...
[10.00e3。 -78.678e-3,-22.178e-3]
我尝试过以下方法: 对于xrange(10000)中的x,DATA = [[0表示x格式(3)]]
排序中的(os.listdir('。')):
for lines in range(0, 39):
dataFile.readline()
for lines in range(0, 10000):
readData = dataFile.readline()
dataLine = readData.split()
DATA[0].append(dataLine[0])
DATA[1].append(dataLine[1])
for lines in range(0, 39):
dataFile.readline()
for lines in range(0, 10000):
readData = dataFile.readline()
dataLine = readData.split()
DATA[2].append(dataLine[1])
dataFile.close()
提前感谢您的帮助。
答案 0 :(得分:2)
from itertools import islice
def get_headers_and_columns(fhandle):
return list(islice(fhandle,0,40)),zip(*map(str.split,islice(fhandle,0,1000)))
with open("input.txt") as f_in,open("output.txt","w") as f_out:
headers, columns = get_headers_and_columns(f_in)
headers2, columns2 = get_headers_and_columns(f_in)
columns.append(columns2[-1])
f_out.write("\n".join(map(" ".join,zip(*columns)))
是你可以实现这一目标的一种方式......至少我认为这样可行