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: ファイル "filename" を読み取り用に開けませんでした: 権限が拒否されました
どんな援助でも大歓迎です:
私は完全に立ち往生しており、データベースまたはファイルの設定方法の癖が原因だと思います。
csvモジュールを使用して単純な読み取りおよび印刷コマンドを追加しても(実際には同じスクリプトから)うまく機能します.csvファイルからすべての情報を出力し、データベースにインポートしようとすると権限が拒否されてエラーになります
import csv
f = open(filename, 'rb')
read = csv.reader(f, delimiter =',')
for row in read:
print row
f.close()