Python でデータをリストまたは配列に読み込む最善の方法に関して、なじみのない形式の ASCII データ ファイルがあります。ASCII データ ファイルは次のようにフォーマットされます。
line 0: <month> <year>
lines 1 - 217: 12 integer values per line, each value has seven spaces, the first is always a space
たとえば、ファイルの最初のレコードは次のようになります。
1 1900
-32768 -32768 790 -1457 -1367 -16 -575 116 -32768 -32768 1898 -32768
-32768 -1289 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768
-32768 -32768 -92 -32768 -32768 -32768 125 -32768 -32768 -32768 -32768 -32768
-32768 -32768 -32768 -32768 -32768 -1656 -32768 -764 -32768 -32768 -32768 -32768
<212 more lines like the above for this record, same spacing/separators/etc.>
上記を 1 つのレコード (1 か月分のすべてのデータ) と呼ぶと、ファイルには約 1200 のレコードがあります。月は 1 から 12 まで順次増加してから、年の値の増分で最初からやり直します。次のように、一度に 1 つずつレコードを読みたいと思います。
with open(data_file, 'r') as dataFile:
# while file still has unread records
# read month and year to use to create a datetime object
# read the next 216 lines of 12 values into a list (or array) of 2592 values
# process the record's list (or array) of data
リストまたは配列にデータを最適に読み込む方法を含め、レコードをループする上記の効率的な「Pythonic」の方法を誰かが提案できますか?
よろしくお願いします。