首页 > 解决方案 > Psycopg:在复制文件时将文件名插入表

问题描述

我的 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))

但是,当然,这种方法太慢了。

标签: pythonpostgresqlpsycopg2

解决方案


推荐阅读