Seite 1 von 1

Pfad zur Datenbank-Error

Verfasst: Donnerstag 15. Juni 2017, 17:50
von DMD-OL
hi
Ich speichere in den Ordner:

"C:\Users\DMD-OL\Desktop\SYSTEM\Getränke\Wein\QR_Codes.db"

eine Datenbank QR_Codes.db, auf dem der Zugriff funktioniert, solange ich keine Umlaute verwende.

Wenn ich das mache, gibt es einen 'OperationalError: unable to open database file'.
Die Pfad zur Datenbank wird korrekt ausgelen:

"C:\Users\DMD-OL\Desktop\SYSTEM\Getränke\Wein\QR_Codes.db".

Zum Auslesen hier mein Code:

Code: Alles auswählen

desktopFile = os.path.expanduser("~\Desktop")
path_grund = desktopFile+'\\Material- & Zeiterfassung\\SYSTEM\\Materialerstellung'
path_speicher = desktopFile+'\\Material- & Zeiterfassung\\Materiallisten'
folderpath = path_grund+'\\QR-Codes'

solo_List = []
for i in os.listdir(folderpath):
    if i not in solo_List:
        solo_List.append(i)

for mat_Namenser in solo_List:
    path_qr = path_grund+'\\QR-Datenbank'+"\\"+mat_Namenser+"\\Cola"
    SQL_QR = '%s\\QR_Codes.db'  %(path_qr)

    print SQL_QR

    conn = sqlite3.connect(SQL_QR)
    cursor = conn.cursor()
    conn.execute('''CREATE TABLE IF NOT EXISTS QR_Codes(ID INTEGER PRIMARY KEY AUTOINCREMENT, QR_LISTE TEXT, PICTURE BLOB,TYPE TEXT,FILE_NAME TEXT,QR_TEXT TEXT);''')
    cursor = conn.cursor()
    cursor.execute('''SELECT QR_LISTE, PICTURE, TYPE, FILE_NAME, QR_TEXT FROM QR_Codes WHERE QR_LISTE = ?''', (mat_Namenser,))
    result = cursor.fetchall()
    print result
    conn.close()
Ich bekomme es nicht hin, da ja eigentlich alles richtig ist?

Re: Pfad zur Datenbank-Error

Verfasst: Donnerstag 15. Juni 2017, 18:37
von Sirius3
@DMD-OL: Pfade setzt man mit os.path.join zusammen und nicht mit +. Es wäre sehr ungewöhnlich, wenn listdir mehrfach Dateien mit dem selben Namen zurückliefert. Die Variablennamen sind eine wilde Mischung aus verschiedenen Sprachen und Abkürzungen. Die Namen sollten klar sagen, für was sie da sind.

Code: Alles auswählen

DESKTOP_PATH = os.path.expanduser("~/Desktop/Material- & Zeiterfassung")
SYSTEM_PATH = os.path.join(DESKTOP_PATH, "SYSTEM", "Materialerstellung")
LISTS_PATH = os.path.join(DESKTOP_PATH, "Materiallisten")
FOLDER_PATH = os.path.join(SYSTEM_PATH, "QR-Codes")

for materials in os.listdir(FOLDER_PATH):
    database_name = os.path.join(SYSTEM_PATH, "QR-Datenbank", materials, "Cola", "QR_Codes.db")
    print database_name

Re: Pfad zur Datenbank-Error

Verfasst: Samstag 17. Juni 2017, 15:51
von DMD-OL
DANKE, jetzt läufts :)