Python: чтение данных из файлов txt, csv, xls, xlsx и jpg в память

Чтение небольших объемов текстовых данных из файла в память

Пример ниже иллюстрирует, когда весь набор данных из файла загружается в память:

with open("test.txt", 'r’) as file:
    print('test.txt content:\n' + file.read())

Причем, при таком подходе, в методе read(N), вместо N можно указывать количество символов, которое необходимо прочитать из файла, тем самым вы можете регулировать объем данных для чтения в память.

Чтение больших объемов текстовых данных из файла в память

Когда требуется загрузить большой объем данных в память, чтобы работать с ним, то самый оптимальный вариант это загружать данные фрагментами по мере их необходимости. Пример ниже иллюстрирует, как этого можно достичь:

# выборка без учета номера строки
with open(test.txt", 'г') as file:
    for observation in file:
        print('reading data: ' + observation)

# выборка с учетом номера строки в переменной j, по которой вы можете отфильтровать выборку
with open(test.txt", 'г') as file:
    for j, observation in enumerate(file):
        print(f'reading data: str number {j}, data {observation}')

Здесь, открыв файл и получив указатель на него в переменной file, чтение выполняется построчно за счет цикла for. Таким образом можно построчно читать и обрабатывать большие объемы данных из файлов.

Чтение изображений из файла в память

Когда перед вами стоит задача анализа данных изображений, то прежде всего вам нужно загрузить это изображение в память. Допустим, что файл изображения для анализа test.jpg у вас находится локально рядом с кодом скрипта, тогда загрузить его в память можно так:

import matplotlib.image as img
import matplotlib.pyplot as plt
%matplotlib inline

image = img.imread("test.jpg")
print(f'Image => shape: {image.shape} px, size: {image.size} bytes')
plt.imshow(image)
plt.show()

В этом примере используются библиотеки matplotlib, за счет которой мы считываем изображение в память, а также библиотека pyplot, за счет которой мы отображаем изображение на экране.

Чтение табличных данных из текстового файла при помощи pandas

Если в вашем текстовом файле содержатся данные представленные в виде таблицы, которые вы хотели бы загрузить в память и проанализировать, то лучше всего с этим справится библиотека pandas. В ней есть синтаксические анализаторы для различных типов данных. Вот простой пример:

import pandas as pd
data_table = pd.io.parsers.read_table("data.txt")
print(data_table)

Метод read_table распознает заголовки и присваивает собственный индекс для каждой строки вашей таблицы из текствого файла.

Чтение данных CSV при помощи pandas

Формат CSV предполагает хранение даных в текстовом виде по типу таблицы, элементы которой разделены каким-либо разделителем. Чтобы прочитать такие данные и загрузить в память, воспользуемся библиотекой pandas.

import pandas as pd
cars = pd.io.parsers.read_csv("cars.csv")
X = cars[['model']]
print(X)

В этом примере мы читаем все данные из CSV, в котором содержатся марки автомобилей и их характеристики. Затем мы выводим на экран только колонку с марками автомобилей, игнорируя все остальные данные. Если же вы хотите получить эти данные в виде списка list, то колонку с марками автомобилей нужно получить так: X = cars[['model']].values.

Чтение данных Excel при помощи pandas

Табличные данные Excel чаще всего хранятся в файлах с форматами .xls и .xlsx. Для того, чтобы читать эти данные в память и работать с ними, также удобнее всего использовать pandas.

import pandas as pd
xls = pd.read_excel("data.xls", 'Sheet1', index_col=None, na_values=['NA'])
print(xls)

Здесь в примере мы указываем файл xls с данными, а что данные нужно прочитать именно с вкладки ‘Sheet1‘, при этом мы указываем index_col=None, что индекс по строкам нам не требуется, а данные пустых ячеек при загрузке в память мы должны заполнить как ‘NA‘.

Рейтинг
( 5 оценок, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями: