【问题标题】:Save file with a specific name using tk filedialog使用 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 中找不到任何关于此的内容

【问题讨论】:

    标签: python excel tkinter save filedialog


    【解决方案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 :) 仍在尝试使用该行,因为不是在列上方而是在下方插入。无论如何,非常感谢您的帮助,由于最初的问题已经解决,将标记为正确答案
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2015-04-17
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多