python-3.x - 如何使用 python 将多个 CSV 文件导入 PostgreSQL 表?
问题描述
我有许多每日 csv 文件要导入 Postgres。下面的 python 代码用于导入单个 csv 文件。如何导入批处理 cvs 文件?谢谢!
import psycopg2
con = psycopg2.connect(
database="xxxx",
user="xxxx",
password="xxxx",
host="xxxx")
cur = con.cursor()
file = open('path/to/directory/client_record_2020-01-01.csv', 'r')
next(file)
cur.copy_from(file, "table_name", columns=('col1', 'col2', 'col3', 'col4', 'col5'), sep=",")
con.commit()
con.close()
解决方案
让我们尝试将我们的文件名放在一个列表中,然后遍历该列表一次做一个copy_from()
。也许:
import psycopg2
file_names = [
'path/to/directory/client_record_2020-01-01.csv'
]
con = psycopg2.connect(database="xxxx", user="xxxx", password="xxxx", host="xxxx")
for file_name in file_names:
with open(file_name, 'r') as file_in:
next(file_in)
with con.cursor() as cur:
cur.copy_from(file_in, "table_name", columns=('col1', 'col2', 'col3', 'col4', 'col5'), sep=",")
con.commit()
con.close()
推荐阅读
- angular - 如何以角度从服务器检索数据
- javascript - Highcharts Maps - 在 Highmaps 上显示数据
- java - 如何在 Spring Boot 的 MySql 查询中使用“LIKE field var%”中的变量?
- user-experience - 如何实现 8pt 网格系统?实施硬网格和软网格有什么区别?
- ios - iOS 13.3 与 13.5 中的 NavigationView 行为差异
- firefox - 火狐浏览器首页设置
- reactjs - 开玩笑:配置中的 modulePaths 和/或 moduleDirectories 仍然不会使导入的模块出现
- ionic-framework - 在 Ionic 5 中根据平台显示/隐藏元素
- angular - Angular 9 轮播 ngx-bootstrap
- c# - 如何访问强名称程序集的内部类