У меня есть требование, чтобы в таблице, размещенной в Azure PostgreSQL, сохранялось много файлов (например, изображений, .csv). Файлы сохраняются как двоичный тип данных. Можно ли извлечь их напрямую в локальную файловую систему с помощью SQL-запроса? Я использую python в качестве языка программирования, спасибо за любое руководство или образец кода!
Как сохранить файлы из postgreSQL на локальный?
Ответы (1)
Если вы просто хотите извлечь двоичные файлы из SQL в локальный и сохранить как файл, попробуйте следующий код:
import psycopg2
import os
connstr = "<conn string>"
rootPath = "d:/"
def saveBinaryToFile(sqlRowData):
destPath = rootPath + str(sqlRowData[1])
if(os.path.isdir(destPath)):
destPath +='_2'
os.mkdir(destPath)
else:
os.mkdir(destPath)
newfile = open(destPath +'/' + sqlRowData[0]+".jpg", "wb");
newfile.write(sqlRowData[2])
newfile.close
conn = psycopg2.connect(connstr)
cur = conn.cursor()
sql = 'select * from images'
cur.execute(sql)
rows = cur.fetchall()
print(sql)
print('result:' + str(rows))
for i in range(len(rows)):
saveBinaryToFile(rows[i])
conn.close()
Это моя примерная таблица SQL:
Результат:
person
Stanley Gong
schedule
03.12.2020