Проблема с расположением файла, даже если файл доступен - PullRequest
0 голосов
/ 05 июня 2018

У меня есть следующие строки кода в Python.Я должен скопировать из таблицы и передать его в указанное место файла.У меня есть файл с именем distance.txt, но файл ошибок не найден, так как файл уже доступен в этом месте.

Кто-нибудь может сказать, какую ошибку я совершил?

cur.execute(("""COPY (select source, target, sum(cost)/1000 as cost from dm where source != 88888888 and target != 88888888 group by source, target order by source) TO '%s\\distance.txt'""") % (os.getcwd()))
con.commit()

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Из интерфейса DB-API 2.0 для баз данных SQLite документация:

# Never do this -- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# Do this instead
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print(c.fetchone())

Применение этого правила к вашей проблеме приводит нас сюда:

import os
filepath = os.path.join(os.getcwd(), 'distance.txt')

cur.execute("COPY (Select * FROM SomeTable) TO ?", (filepath, ))
con.commit()
0 голосов
/ 05 июня 2018

Попробуйте:

import os
filepath = os.path.join(os.getcwd(), 'distance.txt')

cur.execute("""COPY (select source, target, sum(cost)/1000 as cost from dm where source != 88888888 and target != 88888888 group by source, target order by source) TO '%s'""" % (filepath))
con.commit()
...