Psycopg: вставьте имя файла в таблицу при копировании файла - PullRequest
0 голосов
/ 06 августа 2020

Мой Python код, копирующий файлы в PostgreSQL.

Он работает следующим образом:

with gzip.open(<file>, 'rb') as f:
             cursor.copy_from(f, tablename, columns=[‘data_column’])

Но мне нужно вставить дополнительные значения / параметры (вместе с данными из файла ) используя copy_from? Например, я хочу вставить имя файла в отдельный столбец, т.е. реализовать что-то вроде этого:

with file.open(<file>, 'rb') as f:
             cursor.copy_from([f,  <filename>], tablename, columns=[‘data_column’,’filename’])

Любые предложения приветствуются! Спасибо!

ps

Пробовал несколько способов, в том числе следующие

with gzip.open(<file>, 'rb') as f:
     for line in f:
     cursor.execute("""insert into my_table (data_section, filename) values (%s, %s, %s);""", (<file>, line))

Но, конечно, этот подход слишком медленный.

...