[英]Parsing data from file and storing in an array
我正在尝试从其中包含两组数据的文件中解析数据。 该文件具有文件的前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]
我已经尝试了以下操作:DATA = [[xrange(3)中x的0]对于xrange(10000)中的x]
为我排序(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()
感谢您的帮助。
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)))
是您可以完成此操作的一种方式...至少我认为这会起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.