Я новичок в Python. У меня есть 10 входных файлов в формате, показанном ниже. Каждый файл содержит данные измерений для приемника (приемники 1-10). Каждый приемник имеет измерения от 10 передатчиков (передатчики 1-10). Файлы упорядочены хронологически со временем в секундах.Python-Как читать несколько файлов одновременно и вести записи данных
Я хочу читать 10 файлов одновременно по строкам. Когда файлы читаются, я хочу собрать 4 измерения из каждого файла для каждого передатчика и усреднить эти значения, чтобы получить усредненное значение 4 секунды на пару приемника-передатчика. Я хочу отслеживать каждое усредненное значение для каждой пары приемник-передатчик. Как только я собрал 4-секундные усредненные значения для всех передатчиков для конкретного приемника, я хочу усреднить эти значения, чтобы получить усредненное значение для этого приемника. Я также хочу отслеживать эти усредненные значения (среднее время и среднее значение) и к какому получателю они принадлежат.
Я не могу загрузить эти файлы в память, потому что файлы огромны (порядка гигабайт). Сохранение всех усредненных значений в памяти также является проблемой из-за размера файлов. Я хочу сохранить данные о часах для каждой пары приемник-передатчик для усредненных значений в памяти. Как только у меня будет значение усредненных значений часа, когда вычисляется новое усредненное значение, я хочу отказаться от самого старого.
Я думал, что словари могут быть лучшим способом отслеживать данные.
Как я могу выполнить задачу выше?
входного файла:
Колонка Формат: Время (в секундах) Передатчик # Измерение
0.0 1 2.4779E+02
0.0 2 2.8147E+02
0.0 3 2.7437E+02
0.0 4 2.6661E+02
0.0 5 2.2637E+02
0.0 6 2.1457E+02
0.0 7 2.3750E+02
0.0 8 2.9573E+02
0.0 9 2.7339E+02
0.0 10 2.4982E+02
1.0 1 2.1086E+02
1.0 2 2.7459E+02
1.0 3 2.1569E+02
1.0 4 2.0018E+02
1.0 5 2.8732E+02
1.0 6 2.2633E+02
1.0 7 2.2900E+02
1.0 8 2.6883E+02
1.0 9 2.4482E+02
1.0 10 2.8314E+02
2.0 1 2.6987E+02
2.0 2 2.5946E+02
2.0 3 2.8195E+02
2.0 4 2.3097E+02
2.0 5 2.2592E+02
2.0 6 2.5316E+02
2.0 7 2.5562E+02
2.0 8 2.5892E+02
2.0 9 2.1258E+02
2.0 10 2.5791E+02
Что вы _tried_ до сих пор? Не беспокойтесь о загрузке файлов в память: 'open()' Python создает интерфейс _streaming_ файла, поэтому вы читаете только одну строку файла в памяти за раз с помощью 'readline()' (и автоматически удаляете то, что было раньше), а не все сразу (хотя вы можете заставить его сразу все это прочитать). Ваша основная проблема уже решена, поэтому ничто не мешает вам делать это так, как вы хотите использовать наивный подход. –
@markm, если у вас есть ответ, отметьте его и закройте, так как это поможет другим участникам. Благодарю. –