我打算在非常大的數據的輸入數據中找到TS下每行的最大值。這是輸入數據:爲每個時間步找到文本和數字之間的最大值
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
257.0000
SCALAR
ND 3
ST 0
TS 7200.42
255.5984
255.4946
255.7014
SCALAR
ND 3
ST 0
TS 10000.0
256.5984
255.1946
255.7014
最後我要保存最大值具有相同的格式形成不同的時間步長像以下:
SCALAR
ND 3
ST 0
TS 0.00
**256.60**
**255.49**
**257.00**
我寫這樣的代碼:
from __future__ import print_function
lines = []
Newlist = []
with open('data.txt') as f, open('output.txt', 'w') as outfile:
for line in f:
lines.append(line.rstrip('\n'))
lines1=list(enumerate(lines))
list_n=list(zip(*(iter(lines),)*7))
max_value = max(float(n) for n in list_n)
print(max_value, file=outfile)
該程序工作到最後一行,但最後一行的執行我得到以下錯誤:ValueError:max()arg是一個空序列。我不知道爲什麼。
我應該提到,我已經刪除了很多TS後的數字,以使這個例子很小。有許多值需要檢查。必須檢查每個時間步(TS)的同一行。
@MohamadRezaSalehiSadaghiani:你的意思是行數可以改變?你知道當你打開一個文件時有多少行嗎?如果不是,那麼行數總是相同的? –
是的。但我用另一個循環和count +函數解決了它。 –
你能給我一個提示,我怎麼能得到最大值的行數?我想找到這一行並打開另一個文件並讀取第二個文件的兩個值並寫入一個新的數據! –