OperationalError: (sqlite3.OperationalError) не удалось открыть файл базы данных
Сначала я знаю, что есть такие вопросы, и я их читаю, но они мне не пригодились.
У меня есть несколько файлов .csv с финансовых рынков, и я хочу перенести их в таблицу базы данных SQLite3. Я использовал для этой цели пакет Python Odo, но столкнулся с большой ошибкой.
Это пример данных:
EUR/USD,20170102 00:00:01.265,1.0523,1.05307
EUR/USD,20170102 00:00:05.818,1.0523,1.05307
EUR/USD,20170102 00:00:06.833,1.05158,1.05349
Давайте пойдем шаг за шагом: все CSV-файлы и БД находятся на диске D. Я создал sina DB, а затем таблицу Sina1 с помощью этой команды (в SQLite Studio):
CREATE TABLE sina.sina1 (Symbol text, DateTime text, Bid real, Ask real);
Затем я попытался ввести данные с помощью этого кода с помощью Python (Anaconda):
[Есть 2 CSV-файла. оба они одинаковые, но первый с заголовком, а второй без заголовка, как в документации по Odo.]
import sqlite3
from odo import odo, discover, resource
# connect to sina database
conn = sqlite3.connect('d:/sina.db')
# use odo to detect the shape and datatype of csv file
data_shape = discover(resource('d:/with_header.csv'))
# Transfer from csv file to table called 'sina1' within database 'sina.db'
odo('d:/parsclick/without_header.csv', 'sqlite:////d:/sina.db::sina1', dshape = data_shape)
# close database
conn.close()
Я тестировал этот код построчно по-разному. Я создал новую таблицу в этой БД (с помощью студии SQLite) и получил данные с помощью команды select в интерпретаторе python, чтобы у нее не было проблем с подключением. Я вручную ввел data_shape с этим форматом (как в таблице):
data_shape = "var * {simbole: string, DateTime: string, Bid: float64, Ask: float64}"
который несколько отличается от:
var * {simbole: ?string, DateTime: ?datetime, Bid: float64, Ask: float64}
полученный из первого кода.
Я также изменил разрешение всех файлов на диске D на полный доступ для всех и запустил компьютер (windows 10) в качестве администратора. Кроме того, я проверил пути. Но это не изменило историю и каждый раз вызывало эту ошибку:
Файл "C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", строка 410, в соединении возвращает self.dbapi.connect (* cargs, ** cparams)
OperationalError: (sqlite3.OperationalError) не удалось открыть файл базы данных (об этой ошибке можно узнать по адресу: http://sqlalche.me/e/e3q8)