繁体   English   中英

Psycopg2 - copy_expert 权限被拒绝错误

[英]Psycopg2 - copy_expert permission denied error

我正在尝试从 Windows 切换到 ubuntu(我正在使用 12.04 LTS)并尝试使用我的一些旧脚本来运行我的旧数据库。 以前我使用 postgresql 和 psycopg2 来维护它们,我在这里再次尝试这样做。

我的错误是关于使用复制专家命令将 csv 文件导入表。

代码如下:

#!/usr/bin/env python
import psycopg2 as psy
import sys

conn = psy.connect("dbname, user, host, password") # with the appropriate  values
curs = conn.cursor()

table = 'tablename' # a table with the appropriate columns etc
file = 'filename' # a csv file
SQL = "COPY %s FROM '%s' WITH CSV HEADERS" % (tablename, filename)

curs.copy_expert(SQL, sys.stdin) # Error occurs here

conn.commit()
curs.close()
conn.close()

发生的具体错误如下:

psycopg2.ProgrammingError:无法打开文件“文件名”进行读取:权限被拒绝

任何帮助将不胜感激:

我完全被卡住了,我相信这是由于我设置数据库或文件的方式有些怪癖。

使用 csv 模块添加一个简单的读取和打印命令也可以正常工作(实际上来自相同的脚本)它将 output csv 文件中的所有信息,然后在尝试将其导入数据库时出现权限被拒绝的错误

import csv
f = open(filename, 'rb')
read = csv.reader(f, delimiter =',')
for row in read:
    print row
f.close()

尝试使用susudo以超级用户身份执行命令,如果这没有帮助,另一种可能性是文件名的位置超出范围,因此我会尝试将其复制到桌面或您的主目录或文件夹你知道你绝对拥有完全权限的地方,看看这是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM