Вы можете использовать psycopg2's copy_from
метод. Грубый пример (измените пользователя, имя файла, разделитель и т. Д. По своему усмотрению):
import psycopg2
def read_csv_file(file_name, table_name):
con = psycopg2.connect("host=your_host dbname=your_db user=your_user")
cur = con.cursor()
with open(file_name, "r") as f:
cur.copy_from(f, table_name, sep=",")
con.commit()
csv_list = [
("file1.csv", "table1"),
("file2.csv", "table2"),
("file3.csv", "table3"),
]
for file_name, table_name in csv_list:
read_csv_file(file_name, table_name)
Поскольку copy_from
добавляет в таблицу, вы можете повторить это для "обновления" csvs.