我正在尝试从Windows切换到ubuntu(使用12.04 LTS)并尝试使用我的一些旧脚本来运行我的旧数据库。 以前我使用postgresql和psycopg2维护它们,我想在这里再次这样做。
我的错误是使用copy expert命令将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:无法打开文件“filename”进行阅读:权限被拒绝
非常感谢任何帮助:
我完全陷入困境,我相信这是因为我如何设置数据库或文件。
使用csv模块添加简单的读取和打印命令也可以正常工作(实际上来自同一个脚本)它将输出csv文件中的所有信息,然后在尝试导入时拒绝权限并将其拒绝到数据库
import csv
f = open(filename, 'rb')
read = csv.reader(f, delimiter =',')
for row in read:
print row
f.close()
答案 0 :(得分:1)
尝试使用su
或sudo
作为超级用户执行命令,如果这没有帮助,另一种可能性是文件名的位置超出范围所以我会尝试将其复制到桌面或您确定拥有完全权限的主目录或文件夹,看看是否有效。