python - 我可以使用 Tkinter 文件对话框保存 Pandas DataFrame 吗?
问题描述
我对编程相当陌生,甚至对 Tkinter 也很陌生。
我正在设置一个与 SQL Server 一起使用的 GUI,以允许前端用户检索、更新和删除某些信息。
目前我的所有东西都可以正常通信和工作,但我有一个函数可以使用 Pandas 将结果列表导出到 excel 文件中。导出工作正常,但它具有我在 Pandas to_excel 方法中提供的静态名称和目录。
我想使用 Tkinter asksaveasfilename 对话框来允许用户命名和选择文件导出位置,但我似乎无法弄清楚这个对话框是如何工作的(如果可能的话)。对话框代码中是否有一个选项,我可以在其中指定要保存的信息?
def exportFunc():
pd.DataFrame(data).to_excel("TestList.xlsx", header=False, index = True)
filedialog.asksaveasfilename(initialdir = "/", title = 'Save File', filetypes = ("Excel File", "*.xlsx"))
pass
我的代码不会产生任何错误,只是简单地用我尝试的所有内容在对话框中保存任何内容。现在我在我的实际代码中注释掉了文件对话框,但如果有人能指导我找到一个可能的解决方案,我将不胜感激!
解决方案
10 个月前已发布此内容,但我希望此答案也可以帮助新手在谷歌上搜索此答案。
我如何解决这个问题是注意到 asksaveasfile 函数输出一个包含用户指定的文件路径和文件名的值。例如:
< 关闭文件 u'E:Filepath/AnotherPath/work2.xlsx',模式 'w' at 2119x6710 >
然后我使用 regex 和 replace 方法去除文件路径周围的所有值,一旦完成,to_excel 函数将被视为硬代码。
希望这可以帮助那里的人!
out = tkFileDialog.asksaveasfile(mode='w', defaultextension=".xlsx")
out.close()
restr = str(out)
RegexPrep = restr.replace("'w'", '')
outRegex = re.findall(r"'(.*?)'", RegexPrep)
ToExcelRegex = str(outRegex)
MorePrep = ToExcelRegex.replace("[",'')
MorePrep = MorePrep.replace("]",'')
MorePrep = MorePrep.replace("'",'')
Final = MorePrep.strip()
find.to_excel(Final, index=False)
推荐阅读
- google-apps-script - 如果单元格值等于特定单词,如何在 Google 脚本中运行函数
- selenium - 如何在 Selenium WebDriver 中查找项目?
- c# - 在 UWP 中如何显示来自同步函数的消息框(即非异步)
- sql-server - 远程连接到 SQL 数据库服务器
- html - bootstrap 4 Dropdown 在本地不起作用
- java - 使用 Firebase 存储文件夹中的图像填充数组
- javascript - nodejs 需要具有功能的文件仅在一个地方不起作用
- docker - 来自守护程序的错误响应:获取 https://xxxxxxxxx.dkr.ecr.us-east-2.amazonaws.com/v2/xxxx/manifests/v_50:没有基本身份验证凭据
- javascript - 子 div 的随机定位有时会溢出父 div。我该如何阻止/防止这种情况?
- c# - 在 Ubuntu 16.04 上使用 Rider 的 C# 项目中的“项目未找到”和“对象引用未设置为对象的实例”