【问题标题】:Error Exporting .csv from PostgreSQL using Python 3使用 Python 3 从 PostgreSQL 导出 .csv 时出错
【发布时间】:2017-12-05 17:33:08
【问题描述】:

我有一个简单的 PostgreSQL copy 语句,它将表从网络主机 (NETWORK-HOST) 数据库复制到共享网络文件夹上的 .csv 文件。它在 PGAdmin 中运行良好,但是当我将其传输到 psycopg2 脚本时,它告诉我 permission denied。我已经仔细检查以确保在网络共享上授予我的用户名完全控制权,但这并没有什么不同。我正在运行 Windows 10、Python 3(32 位)、PostgreSQL 9.5.1。

这是 PGAdmin 中成功运行的脚本:

copy "Schema".county_check_audit to '\\NETWORK-HOST\NetworkFolder\county_check.csv' delimiter ',' CSV HEADER;

这是我得到权限错误的脚本:

import psycopg2
connection = psycopg2.connect(database="db", user="postgres", password="password", host="NETWORK-HOST")
cursor = connection.cursor()
cursor.execute("copy \"Schema\".area_check_audit to '\\\\NETWORK-HOST\\NetworkFolder\\area_check.csv' delimiter ',' CSV HEADER;")
connection.commit()

这是错误:

psycopg2.ProgrammingError: could not open file "\\NETWORK-HOST\NetworkFolder\area_check.csv" for writing: Permission denied

非常感谢任何见解。

【问题讨论】:

  • 根据错误消息,您必须添加对文件的写访问权限(我猜是执行您的 py 脚本的用户)。我建议首先通过尝试写入同一主机上的文件来测试您的代码,一旦您确定您的代码没问题,您就可以在另一台主机上调试您的文件的访问权限。
  • 当我尝试将表从本地主机导出到我的 C: 驱动器时,我似乎遇到了同样的错误,所以我的代码一定有问题。
  • 您必须更改文件的安全访问权限,如本文所述:stackoverflow.com/a/22486389/1360584
  • 你是对的,除了我需要在设置中添加“写入”权限和“读取”权限。
  • @AkliREGUIG 如果你想添加这个作为答案,我会给你信用。

标签: python postgresql csv


【解决方案1】:

根据错误消息,您必须添加对文件的写入权限。

要在 Windows 上更改文件的安全访问权限,请检查:Permission denied when trying to import a CSV file from PGAdmin

我建议首先通过尝试写入同一主机上的文件来测试您的代码,一旦您确定您的代码没问题,您就可以在另一台主机上调试您的文件的访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2021-03-23
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多