Как спрятать файл в sqlite: как записать двоичные данные в БД

6NGY30E

Пишу бота на Python с использованием sqlite. Хочу прятать разные вещи в базе данных. БД поддерживает хранение изображений в ячейках типа BLOB. Как туда кинуть например *.pdf файл и как его потом оттуда достать.

Используется Питон 3.5

1 ответ

6NGY30E

import sqlite3 as lite
import sys
con = lite.connect("test.db")
cur = con.cursor()
#Загрузка файла в БД
file_input = open("blank.pdf", "rb")
file = file_input.read()
file_input.close()
binary = lite.Binary(file)
cur.execute("INSERT INTO files(file) VALUES (?)", (binary,) )
con.commit()
#Выгрузка файла из БД
cur.execute("SELECT file FROM files LIMIT 1")
data = cur.fetchone()[0]
file_output = open("blank2.pdf","wb")
file_output.write(data)
file_output.close()
con.close()

licensed under cc by-sa 3.0 with attribution.