从csv文件复制数据

时间:2011-03-26 21:54:56

标签: python

我正在尝试跟踪stackoverflow中的一个copy_from示例描述但我修改很少,因为我需要从csv文件中读取数据。按照这个例子我编写了一个小程序,其中文件将从存储在磁盘中的文件中读取,然后将数据从该文件复制到创建的表中,我的代码是:

def importFile():
    path = "C:\myfile.csv"
    curs = conn.cursor()
    curs.execute("Drop table if exists test_copy; ")
    data = StringIO.StringIO()
    data.write(path)
    data.seek(0)
    curs.copy_from(data, 'MyTable')
    print("Data copied")

但我得到错误,

psycopg2.DataError:整数的输入语法无效:

这是否意味着csv文件与我的表格不匹配?或者这个语法是否足以复制csv文件?或者我还需要更多代码?我是python的新手,所以任何帮助都会受到赞赏..

1 个答案:

答案 0 :(得分:2)

使用文本编辑器查看.csv文件。你想确定

  • 字段分隔符是制表符
  • 没有引用字符
  • 没有标题行

如果是这样,以下情况应该有效:

import psycopg2

def importFromCsv(conn, fname, table):
    with open(fname) as inf:
        conn.cursor().copy_from(inf, table)

def main():
    conn = ??  # set up database connection
    importFromCsv(conn, "c:/myfile.csv", "MyTable")
    print("Data copied")

if __name__=="__main__":
    main()