我的程序在Python(TKintert)中根据存储在SQLite数据库中的命名约定重命名文件。fetch_db()
只能执行一次,第二次出现错误消息
“无法打开数据库文件”
出现了。这是由于path = os.chdir(folder_selection.get())
,如果没有它,fetch_db()
可以多次执行。
相关代码:
import sqlite3
import os
from tkinter import *
def fetch_db():
connection = sqlite3.connect("database/database.db")
cursor = connection.cursor()
cursor.execute("SELECT * FROM employees")
emp_rows = cursor.fetchall()
connection.commit()
connection.close()
return emp_rows
def rename():
db_data = fetch_db()
#print(db_data)
path = os.chdir(folder_selection.get())
#TKINTER UI
root = Tk()
root.title("Lohnabrechnung hochladen")
root.geometry("600x600")
# Select folder & Button
folder_selection = Entry(root, width=80)
folder_selection.grid(row=6, column=0, sticky=W, padx=10)
select_f = Button(root, text="Rename", command=rename)
select_f.grid(row=7,column=0, sticky=W, padx=10)
root.mainloop()
Image
操作系统模块是否会导致与SQLite数据库结合出现问题?
1条答案
按热度按时间1u4esq0p1#
问题不在于操作系统模块,而在于您使用的是数据库文件的相对路径。更改工作目录时,相对路径不再有效,因为它是相对于工作目录的。
您应该在程序启动时计算绝对路径,并将其保存在变量中。这样,当您更改工作目录时,绝对路径将继续工作。