最近用编程处理文件挺多的,matlab用得比较熟,但还是想用python来写写,Fortran就不用了。
所用到的数据如下图,前面4行是说明,实际要用的数据是第5行开始。
一共是有29*53个点,每一组就有53个数据,一共是有29组。
下面就是操作了
# 导入所需的库 import numpy # 打开 micaps 文件 f1 = open('13052520.000', 'rt') f2 = open('data.txt', 'wt') # 前面4行为注释数据,没有用 for i in range(4): temp = f1.readline() # 定义一个数组保存文件中的数据,29行53列 data = numpy.zeros((29, 53)) # 一行一行地读取,读取的是一个字符串 for lin in range(29): con = 0 # 文件中每6行构成所需的1行 for i in range(6): # 读1行 dd = f1.readline() # 将读取的\n去掉,将字符按空格分开,构成了若干个字符串构成的列表 dd = dd.split() # 下面是将字符串一个一个分开导入数组中 for d in dd: data[lin][con] = float(d) con = con + 1 # 将数组转化为列表 data = data.tolist() # 一个一个地写 # 因为写文件只能写字符串,所以需要将列表转化为字符串 for i in range(len(data)): for j in range(len(data[i])): f2.write(str(data[i][j])) f2.write(' ') # 每写完一行,换行 f2.write('\n') f1.close() f2.close()
最后写出来的结果就是这样了
读写二进制文件,有时间再写写,先继续用matlab做实习(‾◡◝)
总结