使用 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)?

python 实现用对话框选择文件夹或文件(更新1,追加filedialog对话框用法详解)

NameError:名称“Tk”未定义

java用FileDialog怎么打开和保存文件

Python.tkinter.打开对话框选择文件文件夹