Я новичок в python и пытаюсь прочитать "блоки" данных из файла. Файл написан примерно так:
# Some comment
# 4 cols of data --x,vx,vy,vz
# nsp, nskip = 2 10
# 0 0.0000000
# 1 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 2 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 500 0.99999422
# 1 4
0.5057E+03 0.7392E-03 -0.6891E-03 0.4700E-02
0.3777E+03 0.9129E-03 0.2653E-04 0.9641E-03
0.2497E+03 0.9131E-03 0.7970E-04 0.8173E-03
0.1217E+03 0.9131E-03 0.1378E-03 0.6586E-03
and so on
Теперь я хочу иметь возможность указывать и читать только один блок данных из этих многих блоков. Я использую numpy.loadtxt('filename',comments='#')
для чтения данных, но он загружает весь файл за один раз. Я искал в Интернете, и кто-то создал патч для процедуры numpy io, чтобы указать блоки чтения, но его нет в основном numpy.
Гораздо проще выбрать блоки данных в gnuplot, но мне придется написать процедуру для построения графика функций распределения. Если бы я мог понять, как читать определенные блоки, в python это было бы намного проще. Кроме того, я переношу все свои коды визуализации на python из IDL и gnuplot, поэтому было бы неплохо иметь все на python, а не разбрасывать вещи по нескольким пакетам.
Я подумал о том, чтобы вызвать gnuplot из Python, вывести блок в таблицу и назначить вывод какому-то массиву в Python. Но я все еще начинаю, и я не мог понять синтаксис, чтобы сделать это.
Любые идеи, указатели на решение этой проблемы были бы очень полезны.