Я пытаюсь прочитать очень большой текстовый файл (файл .dat) - слишком большой, чтобы открыть его полностью - но меня не интересует полное содержание (только небольшая часть).
Настоящий текстовый файл имеет 32 столбца и неизвестное количество строк.Меня интересуют только строки, в которых значение в столбце № 15 меньше 40, а значение в столбце 21 - от 10 до 25. Есть ли способ указать эти ограничения при открытии и загрузке файла в python, чтобы избежатьтратить память на контент, который меня не волнует?
Вот пример:
Допустим, у нас есть файл из 100 данных (25 строк и 4 столбца), и мы хотим толькочитать строки (полные строки!), где значение в столбце № 2 меньше 40, а значение в столбце № 4 - от 10 до 25. Как мы можем сделать это без предварительной загрузки полного файла?
import numpy as np
# Create some examplary fake data for the text file:
textfile_content = np.random.randint(100, size=100).reshape(25,4)
print(textfile_content)
# Save text file:
np.savetxt('file.dat', textfile_content, fmt='%10.5e')
Самый близкий подход, который мне удалось найти, заключается в следующем: Чтение только определенных строк (Python)
Но это не совсем решает мою проблему, так как этот человек хочет извлечь полные столбцы, предопределенный номером столбца, а не конкретным значением данных.