Python 如果用户选择了错误的文件类型,如何显示错误消息?

Python 如果用户选择了错误的文件类型,如何显示错误消息?,python,python-3.x,python-2.7,tkinter,Python,Python 3.x,Python 2.7,Tkinter,我被分配了一个项目,其中一部分是让用户选择一些文件或文件夹。我的代码运行良好。我想做的是,如果用户选择了错误的文件类型,就会发出错误消息。当用户单击某个按钮时,他/她应该访问某一类型的文件,即如果他/她单击“选择Java文件/文件夹”按钮,那么他/她将只选择Java文件。请导游。下面是我选择文件和文件夹的代码。我还需要补充什么 def Select_File(self): root = Tk() root.withdraw() self.filename = filedi

我被分配了一个项目,其中一部分是让用户选择一些文件或文件夹。我的代码运行良好。我想做的是,如果用户选择了错误的文件类型,就会发出错误消息。当用户单击某个按钮时,他/她应该访问某一类型的文件,即如果他/她单击“选择Java文件/文件夹”按钮,那么他/她将只选择Java文件。请导游。下面是我选择文件和文件夹的代码。我还需要补充什么

def Select_File(self):
    root = Tk()
    root.withdraw()
    self.filename = filedialog.askopenfilenames(initialdir='/', title='Select a File', 
                                               filetype=(('Java','*.java'),('C#','*.cs'),('C++','*.cpp')))
    if self.filename:
        self.scanner = FileScanner()
        self.data = self.scanner.Project_Scanner(self.filename)
        self.Display(self.data)
    else:
        self.msg.setText("No File Selected")
        self.msg.setInformativeText('Please Select a File to Proceed')
        self.msg.setWindowTitle("Error")
        self.msg.exec_()
 

def Select_Project(self):
    root = Tk()
    root.withdraw()
    self.folder_selected = filedialog.askdirectory(initialdir='/', title='Select Folder')
    if self.folder_selected:
        self.files = self.get_Files(self.folder_selected)
        self.scanner = FileScanner()
        self.data = self.scanner.Project_Scanner(self.files)
        self.Display(self.data)
    else:
        self.msg.setText("No Folder Selected")
        self.msg.setInformativeText('Please Select a Folder to Proceed')
        self.msg.setWindowTitle("Error")
        self.msg.exec_()
 

尝试删除其他文件类型并检查文件名,以查看它是否为java文件:

从tkinter.messagebox导入淋浴ROR
def Select_文件(自身):
root=Tk()
root.draw()
self.filename=filedialog.askopenfilename(initialdir='/',title='Select a File',
文件类型=(('Java','*.Java'),)
如果self.filename:
尝试:
断言self.filename.split('.')[-1]=='java'
self.scanner=FileScanner()
self.data=self.scanner.Project\u scanner(self.filename)
自我显示(自我数据)
例外情况除外,如e:
打印(e,类型(e))
淋浴错误(“文件打开”,“有问题打开文件”)
其他:
self.msg.setText(“未选择文件”)
self.msg.setInformativeText('请选择要继续的文件')
self.msg.setWindowTitle(“错误”)
self.msg.exec()```

我有3个用于.java、.cs和.cpp文件的按钮。这是否意味着我需要为每个文件扩展名创建3个独立的方法?@RabiSiddique可能会传入按下的按钮,然后将具有正确文件扩展名类型的元组传递到
文件类型
?它用于选择文件。但是当用户选择一个文件夹时,我该怎么做呢?@RabiSiddique我认为断言也适用于文件夹,例如
some/folder/java
不起作用,并且会引发错误?如果您正在对文件夹中的文件进行迭代,而不是对每个文件都引发错误,只需忽略任何未通过该文件以断言结尾的文件。