주위를 둘러 보았습니다.이 삽입/검색 코드를 작성하여 .mat 파일을 읽고 bytea postgres 데이터베이스 열로 전송 한 다음 다시 가져 와서 파일을 다시 만들었습니다.python으로 postgres 데이터베이스에서 .mat (matlab) 파일을 삽입/검색하는 방법은 무엇입니까?
나는 데이터베이스 상호 작용을 위해 psycopg2를 사용합니다.
삽입 :
full_file_path = os.path.join(folder_path, single_file)
f = open(full_file_path,'rb')
file_data = psycopg2.Binary(f.read())
cur.execute("INSERT INTO file_data_table "
"(id, file_name, file_data, insertion_date) "
"VALUES (DEFAULT, %s, %s, %s)",
(single_file, file_data, timestamp))
f.close()
conn.commit()
print single_file + " inserted"
검색하고 파일에 저장하려고합니다 (FILE_NAME은 "something.mat")
cur = conn.cursor()
cur.execute("SELECT encode(file_data, 'hex'), file_name FROM file_data_table")
result = cur.fetchall()
print result[0][0]
for row in result:
print row[1]
full_file_path = os.path.join(folder_path, row[1])
f = open(full_file_path,'w')
f.write(row[0])
f.close()
그것은 데이터베이스에서 데이터를 검색하고 성공적으로에 저장 파일로 저장되지만 파일은 매트 파일로 열리지 않으며 파일 크기는 데이터베이스에 저장하려고했던 원본 파일보다 훨씬 큽니다.
일부 데이터 변환이 제대로 처리되지 않는다고 가정합니다.
모든 도움을 주시면 대단히 감사하겠습니다.
저는이 샘플이 encode (file_data, 'hex') 비즈니스 없이는 잘 작동 할 것이라고 생각합니다. 바로 file_data를 직접 선택하고 지금하고있는 것처럼 작성하십시오. –