使用 tk filedialog 以特定名称保存文件
Posted
技术标签:
【中文标题】使用 tk filedialog 以特定名称保存文件【英文标题】:Save file with a specific name using tk filedialog 【发布时间】:2020-09-30 17:12:33 【问题描述】:有没有办法使用 filedialog 将 DataFrame 保存到 excel 文件中,但是,例如使用特定名称作为“my_file”? 我通常使用这个代码
path_to_save = filedialog.asksaveasfilename(defaultextension='.xlsx')
df.to_excel(path_to_save, index=False)
这将打开一个窗口,我可以在其中选择文件的位置和名称,现在我希望默认名称为“my_file”,这样就不需要输入了。
有什么办法吗?提前多谢
保存的excel文件为空:
a_row['column1'] = df['column1']
new_df = a_row
new_df2 = pd.DataFrame('column2': [], '': [])
new_df3 = pd.concat([new_df, new_df2])
new_df3['column2'] = 'some value'
new_df3 = new_df3.set_index(['column1', 'column2'])
path_to_save1 = filedialog.asksaveasfilename(defaultextension='.xlsx', initialfile = 'my_file')
new_df3.to_excel(path_to_save1, index=False)
是否可以在此图像中的列名称顶部插入一行?我在 pandas doc 中找不到任何关于此的内容
【问题讨论】:
【参考方案1】:主要问题
尝试为asksaveasfilename
函数使用参数initialfile
,例如:
path_to_save = filedialog.asksaveasfilename(defaultextension='.xlsx', initialfile = 'my_file')
评论问题
关于 DataFrame 的空虚,是因为您没有为它分配任何东西。要添加值,您可以使用loc
:
df = pd.DataFrame('column1':[],'column2':[])
df.loc[0] = ['value1','value2']
您也可以使用 concat
执行此操作,但请确保您的数据框具有相同数量的列。
要在顶部添加一行,@edyvedy13 找到了这个有趣的解决方案here:
df.loc[-1] = ['value1.0','value2.0']
df.insert(0,1,'value2')
df.index = df.index + 1
df.sort_index(inplace=True)
【讨论】:
谢谢你,@mgmussi,我敢再问一件事,我正在尝试创建一个新的 df 并将其另存为“my_file”,但由于某种原因没有复制到 excel 文件中我将其保存为“my_file”。意思是,文件已创建但为空,这是我的代码,你看到它有什么问题吗?实际上,我将其粘贴到初始描述中 不是真的,但我设法以某种方式复制创建另一个 df :) 仍在尝试使用该行,因为不是在列上方而是在下方插入。无论如何,非常感谢您的帮助,由于最初的问题已经解决,将标记为正确答案以上是关于使用 tk filedialog 以特定名称保存文件的主要内容,如果未能解决你的问题,请参考以下文章
Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )
为什么tkinter.filedialog.askdirectory没有返回完整路径(使用选定的dirname)?