python - 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))
但是,当然,这种方法太慢了。
解决方案
推荐阅读
- apache-spark - 一次性在 spark 数据帧上执行多个聚合,而不是多个慢速连接
- assembly - 64 位或使用 64 位寄存器的地址大小覆盖前缀
- scala - Scala嘲笑这种行为
- typescript - 在 Visual Studio 中将 typescript 错误报告为警告,并且不会使构建失败
- spring - 如何从 MONO/FLUX 中提取字符串值 -
- laravel - 从 json 获取嵌套数组的值
- c# - WPF 按钮效果
- android - org.jetbrains.kotlin.util.KotlinFrontEndException:分析表达式时出现异常
- css - CSS级联起源和重要性的优先级
- r - 如何通过固定列合并两个数据框