Python, in-memory файловые потоки
Для создания файловых потоков без использования дисковой подсистемы в Python можно воспользоваться модулем io
.
В качестве примера рассмотрим задачу, в которой исходный список словарей необходимо преобразовать в CSV-формат методами библиотеки pandas
. При этом сохранять результат работы функции to_csv
непосредственно на диск нельзя.
Вариант реализации:
import io
import pandas as pd
# Исходные данные.
data = [
{'a': 1, 'b': 2, 'c': 3},
{'a': 4, 'b': 5, 'c': 6},
]
# Датафрейм pandas.
df = pd.DataFrame(data)
# Буфер данных.
buf = io.StringIO()
# Преобразование датафрейма в csv-формат.
r = df.to_csv(buf, index=False, sep=',')
# Сдвиг позиции буфера в начало.
buf.seek(0)
# Чтение всего буфера. Результат - строка.
print(buf.read())