python-3.x - 将 python 文件对话框限制为特定的文件类型

标签 python-3.x tkinter

我创建了以下试用代码来制作一个程序,该程序将一个 Excel 工作表加载到一个数据框中,然后将该数据框保存到另一个 Excel 工作表中(所有用户选择)

import os
import pandas
from pandas import ExcelWriter
import tkinter as tk
from tkinter import filedialog

class Load_Save_Program():

    def __init__(self,master):
        self.master = master

        self.button1=tk.Button(self.master,text="Load",command=self.Load_file)
        self.button1.grid(row=0,column=0)

        self.button2=tk.Button(self.master,text="Save",command=self.Save_file)
        self.button2.grid(row=0,column=1)

        self.text=tk.Text(master)
        self.text.grid(row=1,column=0,columnspan=2)

    def Load_file(self):
        self.df_import=pandas.read_excel(filedialog.askopenfilename(initialdir = os.getcwd()),
                                            filetypes=("excel files","*.xlsx"))
        self.text.insert(tk.END,self.df_import)

    def Save_file(self):
        self.writer = ExcelWriter(filedialog.asksaveasfilename(initialdir = os.getcwd()),
                                            filetypes=("Excel files", "*.xlsx"))
        self.df_import.to_excel(self.writer,'sheet1')
        self.writer.save()

root=tk.Tk()
Load_Save_Program(root)
root.mainloop()

我想要做的是扩展它,以便当程序弹出文件目录窗口时,它只显示 .xlsx 文件类型的文件,以避免用户打开不兼容的文件类型时出错。到目前为止,我还没有想出任何可以解释如何正确设置的信息。

最佳答案

filedalogs 有一个文件类型选项来做你想要的。一般语法是 filetypes=[(label1, ext1), (label2, ext2), ...] .

在你的情况下,这将给出:
filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx")])

关于python-3.x - 将 python 文件对话框限制为特定的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46331408/

相关文章:

python - 如何使用函数参数作为类型提示?

python-3.x - 如何使用 telethon 从我的 telegram 联系人中删除用户?

python - 如何在 Tkinter 文本小部件中突出显示单词或字母表?

python - tkinter 同时使用两个键

python - 关闭 Tkinter 后运行 wxPython

python - 我为 2 或 3 个输入编写了代码,但对于许多输入我应该做什么

python - 使用坐标在图像上重叠图形

python - Python 文档中的条件表达式

python - 当加载图标并且 tk.mainloop 在线程中时,Tkinter 锁定 Python

python - 撤回时 Tkinter 不更新