Python join 文件路径和文件名



>我正在浏览一个工作正常的文件:

def fileDialog(self):
self.filename = filedialog.askopenfilename(initialdir = "/", title = "Select file", filetypes = 
(("excel files","*.xl*"),("all files","*.*")))
self.uploadRoster()

通过选择该特定的 excel 文件,我可以将 excel 文件转换为数据库;但是,数据库是在同一位置创建的,但我想将数据库复制到保存脚本的目录或其他所需的文件夹中,但这不起作用。

def uploadRoster(self):
response = messagebox.askquestion(title = "Upload Roster", message = "Do you wish to continue?")
if response == 'yes':
excel_file = self.filename
connection = sqlite3.connect(os.path.splitext(excel_file)[0] + ".db")
wb = pd.read_excel(excel_file, sheet_name = [0])
for sheet in wb:
wb[sheet].to_sql("employee_details", connection, index=False, if_exists = 'append')
connection.commit()
connection.close()
elif response == 'no':
pass

上面将转换文件(例如"Roster.xlxs"到"Roster.db(,但这应该保存在其他目录中,因为以后我无法访问"Roster.xlxs"路径的位置。 任何帮助将不胜感激

来自文档:https://docs.python.org/3/library/sqlite3.html

import sqlite3
dbdir='C:\Temp\SQL\' #put your path here
conn = sqlite3.connect(dbdir+'example.db')

您可以在这些行中设置数据库的新路径;

# ... logic ....
if response == 'yes':
excel_file = self.filename
connection = sqlite3.connect(os.path.splitext(excel_file)[0] + ".db")
# .... logic 

例如;

def uploadRoster(self):
response = messagebox.askquestion(title = "Upload Roster", message = "Do you wish to continue?")
if response == 'yes':
excel_file = self.filename
# extract the name 
name = os.path.splitext(excel_file)[0]
# create new path for your db 
# you may want to use os.path.join() here
path = 'path_to/your_folder/' + name + '.db' 
# create db at specified path
connection = sqlite3.connect(path)
wb = pd.read_excel(excel_file, sheet_name = [0])
for sheet in wb:
wb[sheet].to_sql("employee_details", connection, index=False, if_exists = 'append')
connection.commit()
connection.close()
elif response == 'no':
pass

最新更新