2013-07-09 25 views
4

是否可以通过psycopg2运行以下命令?如果是这样,我该怎么做?使用psycopg2库复制命令

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

回答

3

一个谷歌搜索psycopg2 copy认为,正如第一次打我,the psycopg manual,其中包括有关使用客户端COPY指令。

如果你想要服务器端COPY你就像运行其他SQL一样运行语句。

如上所述,命令没有任何意义。我认为你的意图是写一个COPY ... TOCOPY ... FROM命令,并在隐藏真实文件名等时对其进行修改。

+0

你是正确的,我在我的命令,一个错字。我忘了运行cur.commit()。谢谢你的帮助! – user680839

+0

@ user680839很高兴为您提供帮助。 http://stackoverflow.com/help/someone-answers –

8

是的!

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()