使用psycopg2库复制命令

use*_*839 11 python postgresql psycopg2

是否可以通过psycopg2运行以下命令?如果是这样,我该怎么办?

COPY table_name(col1,col2) FROM 'path/to/file.csv' WITH HEADER DELIMITER ',' CSV;
Run Code Online (Sandbox Code Playgroud)

Sea*_*ean 16

是!

http://initd.org/psycopg/docs/cursor.html#cursor.copy_from

import psycopg2
dbname=...
user=...
password=...
host=...
port=...
con = psycopg2.connect(database=dbname,user=user,password=password,host=host,port=port)
cur = con.cursor()    
f = open('path/to/file.csv')
cur.copy_from(f, 'test', columns=('col1', 'col2'), sep=",")
con.commit()
con.close()
Run Code Online (Sandbox Code Playgroud)

  • @shrinathM psycopg2 的 copy_from 目前不支持带引号的值,当您有一个重要的 CSV 文件时,请使用 copy_expert 代替。 (2认同)

Cra*_*ger 4

谷歌搜索psycopg2 copy发现,作为我的第一个命中,psycopg 手册,其中包括有关使用客户端的说明COPY。

如果您想要服务器端,COPY您只需像任何其他 SQL 一样运行该语句。

如上所述,该命令没有任何意义。我想你打算写一个COPY ... TOorCOPY ... FROM命令并在隐藏真实文件名等的同时破坏它。