我想学习Python,我有意使一个非常大的数据文件变小,后来做一些统计分析与R我需要读取数据文件(见下文):小数点后阅读完整的数据文件和整数到2位小数,并保存为相同的格式
SCALAR
ND 3
ST 0
TS 10.00
0.0000
0.0000
0.0000
SCALAR
ND 3
ST 0
TS 3600.47
255.1744
255.0201
255.2748
SCALAR
ND 3
ST 0
TS 7200.42
255.5984
255.4946
255.7014
,并找到号码和圆形它在两位数,svae在TS前面的类别数的最大数量。在最后保存相同格式的数据文件类似以下内容:
SCALAR
ND 3
ST 0
TS 10.00
0.00
0.00
0.00
SCALAR
ND 3
ST 0
TS 3600.47
255.17
255.02
255.27
SCALAR
ND 3
ST 0
TS**MAX** 7200.42
255.60
255.49
255.70
我写这样的代码:
import numpy as np
import matplotlib.pyplot as plt
import pickle
# Open file
f = open('data.txt', 'r')
thefile = open('output.txt', 'wb')
# Read and ignore header lines
header1 = f.readline()
header2 = f.readline()
header3 = f.readline()
header4 = f.readline()
data = []
for line in f:
line = line.strip()
columns = line.split()
source = {}
source['WSP'] = columns[0]
#source['timestep'] = float(columns[1])
source['timestep'] = columns[1]
data.append(source)
f.close()
但在TS前面的数字不能被读取。我想整理这些数字,但是我使用的浮点数不起作用。之后,我想把它放在一个循环中任何建议,我是否以良好的方式编写代码?我会非常感谢帮助。
非常感谢。我真的走错了方向。你能否给我一个提示以下问题。我试图重写rpogram,但它并没有给我正确的答案。我还希望在TS中找到所有第一个号码,第二个号码,第三个号码,第四个号码等等之间的最大数量...... –