当前位置: 首页 > 知识库问答 >
问题:

Postgres COPY FROM命令不能通过Python工作

许嘉珍
2023-03-14

我有一个Python脚本,它使用psycopg2库连接到Postgres并将表从Postgres数据库复制到文本文件(以制表符分隔)。这很管用。然后,我尝试运行一个类似的函数,但这次将文本文件插入到不同的Postgres数据库中的一个相同的表中。我的脚本如下:

def copyFromFile(tableName):
    try:
        cTo = None
        cTo = psycopg2.connect(database="postgres", user="postgres", password="postgres", host="localhost")
        tCursor = cTo.cursor()
        print 'here'
        io = open(tableName+'.txt', 'r')
        tCursor.copy_from(io, tableName)
        print 'done copying'
    except Exception as inst:
        print "I am unable to copy to " + tableName

#start 
copyFromFile('schema.tableName')

文本文件如下所示:

95216   8802    269726  3   1350    1   2014-09-02 14:11:25.817178  I
95217   8802    269726  4   1351    1   2014-09-02 14:11:25.817178  I
95218   8802    269726  5   1352    1   2014-09-02 14:11:25.817178  I
95219   8802    269726  6   1353    1   2014-09-02 14:11:25.817178  I
95220   8802    269726  7   1354    1   2014-09-02 14:11:25.817178  I
95221   8802    269726  8   1355    1   2014-09-02 14:11:25.817178  I
95222   8802    269726  9   1356    1   2014-09-02 14:11:25.817178  I



运行此脚本时,没有错误,但数据库表没有数据。此表一开始是空的。会少了什么?

共有1个答案

范浩荡
2023-03-14
print 'done copying'
cTo.commit()

也许?-g

 类似资料:
  • 我在命令行中键入,但命令提示符显示python不能被识别为内部或外部命令、可操作程序或批处理文件。我该怎么办? 注意:我已经在我的计算机上安装了Python2.7和Python3.2。

  • Python不能在git bash(Windows)中运行。当我在命令行中键入python时,它会将我带到一个空行,而没有像在PowerShell中那样说明它已经输入了python 2.7.10。它不会给我错误消息,但python就是不运行。

  • 我使用NetBeans8.2创建了一个非常简单的Hello World程序。但是,当我尝试在Linux中使用命令行执行jar文件时 如果你需要更多的信息,请告诉我。 谢了。

  • 我已经下载了jdk 1.8.0\u 131 当我打开命令提示符并编写以下命令-java-version时,它会给出输出 但是当我编写以下命令时:javac-version它会给我输出 我已经编辑了系统变量路径-C:\Progra~1\Java\jdk1.8.0_131\bin; 当我执行以下命令时:"C:\Program Files\Java\jdk1.8.0_131\bin\javac"-ver

  • 问题内容: 通过终端执行时正在工作。但不是通过QProcess 我的示例代码是 在textedit上什么都没有显示。 但是当我仅在qprocess的开头使用时,输出将显示在textedit上。我是否错过了构造命令的任何技巧,例如for 和for ?特殊字符?但我也尝试过 问题答案: QProcess执行一个进程。您要执行的操作是执行 Shell命令 ,而不是进程。命令管道是Shell的功能。 有三

  • 问题内容: 我有一个从Python(包装在Django中)执行的MySQL存储过程。当我尝试执行第二条语句时,出现错误“命令不同步;您现在不能运行此命令”。我目前无法提交交易。当我调用过程时,这只是一个问题。该怎么办? 编辑:我被要求发布MySQL过程。我使它变得非常简单,但我仍然遇到相同的问题 问题答案: 感谢JoshuaBoshi的回答,该问题得以解决。调用该过程之后,我必须关闭游标并再次打开