我有一些來自某些數值計算的輸出文件。輸出文件看起來像爲每個文件塊運行不同的代碼
AA AB AC廣告AE┐
BA BB BC BD是┘5串
0.5 1.2 0.3 AAA BBB┐
0.2 8.2 3.3 CCC DDD┃3浮子+的塊的塊2串
0.5 1.3 0.6 EEE GGG┘
0.11 0.444 0.333 0.777 0.88┐
0.41 0.544 0.313 0.797 0.01┃
0.11 0.447 0.333 0.777 0.88 6┃浮子座
0.17 0.444 0.333 0.787 0.03┃
0.11 0.444 0.333 0.777 0.88┘
,這意味着,它形成一些圖案的塊。我想要做的是閱讀這個文件,並分別爲每個塊做一些東西。
對於最簡單的方法,我寫的代碼像
file = open("myfile", "r")
for i, line in enumerate(file):
if i <= 1:
# do some stuff 1.
elif 1< i <=4 :
# do some stuff 2
elif 4 < i :
# do some stuff 3
file.close()
和手工指定的行號,每當我運行程序。問題是輸出文件的行號因文件而異(但模式相同),並且在我通過眼睛手動檢查之前,我不知道每個塊會有多長。處理這個問題的有效方法是什麼?
每個文件的大小約爲100〜1000MB,每個文件大小約爲500000〜5000000行。
說你的模式是僅基於float和字符串。從第一行開始,保持它們兩個的計數並且直到下一行也具有相同的計數,否則繼續到代碼的下一個塊。這有幫助嗎? – alDiablo
這三種類型的塊*總是分別是2,3和6行還是僅僅是一個例子? – timgeb
@timgeb該行不同。某些文件有2,3,6行,而其他文件有2,5,16行等等。 – user42298