我正在尝试从 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 模块添加一个简单的读取和打印命令也可以正常工作(实际上来自同一个脚本)它将输出 csv 文件中的所有信息,然后在尝试将其导入数据库时出错,权限被拒绝
import csv
f = open(filename, 'rb')
read = csv.reader(f, delimiter =',')
for row in read:
print row
f.close()