Невозможно открыть файлы базы данных - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь использовать этот код для открытия базы данных, но у меня появляется сообщение об ошибке. Вот мой код:

def load_data(data_path='.', expnames=('R1','R2','R3','R4'), segments=('wait','blanking','preeject','eject'), fnpattern='AKF_E_{exp_desn}_Stempel_1_Formular_punches_segment_{segment}'):
    '''
    Creat a dictionary to save all the loaded rawdata for easily calling out

    Parameters
    -----------------
    data_path: path of the needed datasets

    Returns
    -----------------
    out_data:dict
            dictionary that contains loaded datasets of R1,R2,R3,R4
    '''
    out_data={}
    for exp_desn in expnames:
        row={}
        for segment in segments:
            dbname=os.path.join(data_path, exp_desn, fnpattern.format(segment=segment, exp_desn=exp_desn) )
            #assert os.path.exists(dbname+'.db')
            data=load_all_segments(dbname)
            row[segment] = data
        out_data[exp_desn] =  row
    return out_data```

вот как я вызываю функцию для загрузки данных:

rawdata_R = 
load_data("\\Users\\Fast\\senseering\\raw_data", ('R1','R2','R3','R4'), ('wait','blanking','preeject','eject'), 'AKF_E_{exp_desn}_Stempel_1_Formular_punches_segment_{segment}')

, но я получаю эту ошибку, и я не могу понять, что не так:

OperationalError                          Traceback (most recent call last)
<ipython-input-17-30cfc39001e5> in <module>
----> 1 rawdata_R = load_data("\\Users\\Fast\\senseering\\raw_data", ('R1','R2','R3','R4'), ('wait','blanking','preeject','eject'), 'AKF_E_{exp_desn}_Stempel_1_Formular_punches_segment_{segment}')

<ipython-input-8-a923a3777194> in load_data(data_path, expnames, segments, fnpattern)
     44             dbname=os.path.join(data_path, exp_desn, fnpattern.format(segment=segment, exp_desn=exp_desn) )
     45             #assert os.path.exists(dbname+'.db')
---> 46             data=load_all_segments(dbname)
     47             row[segment] = data
     48         out_data[exp_desn] =  row

<ipython-input-8-a923a3777194> in load_all_segments(db_name, segment)
      1 def load_all_segments(db_name, segment=""):
----> 2     conn = sqlite3.connect(db_name + ".db")
      3     df_names = pd.read_sql_query("SELECT name FROM sqlite_master WHERE type='table';", conn)
      4     df_all = pd.DataFrame()
      5 

OperationalError: unable to open database file

Может кто-нибудь подскажите пожалуйста, в чем проблема и как ее решить.

1 Ответ

0 голосов
/ 23 апреля 2020

Спасибо за попытку помочь.

вот ответ: вместо:

dbname=os.path.join(data_path, exp_desn, fnpattern.format(segment=segment, exp_desn=exp_desn) )

Я должен был использовать следующее:

dbname=os.path.join(data_path,  fnpattern.format(segment=segment, exp_desn=exp_desn) )

разница связана с путем к моей папке. первый предполагает, что в папке path у меня есть exp_desn, а у меня его нет, и поэтому я не смог его открыть. Как только я удалил его, мои данные были доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...