python-recall浏览文件

python-recall浏览文件,python,python-3.x,mime-types,Python,Python 3.x,Mime Types,我正在编写一个程序,用户在其中浏览pdf并选择它。我想检测该文件,并发送一个弹出窗口,如果选定的文件不是PDF。但是,即使打印正确的文件类型,如果文件不是pdf,程序也不会发送弹出窗口。我该怎么办 def OpenFile (): file1 = filedialog.askopenfile (initialdir ="/", mode ="r") #r sta per solo lettura print (file1) file_type = (mimetypes.M

我正在编写一个程序,用户在其中浏览pdf并选择它。我想检测该文件,并发送一个弹出窗口,如果选定的文件不是PDF。但是,即使打印正确的文件类型,如果文件不是pdf,程序也不会发送弹出窗口。我该怎么办

def OpenFile ():
    file1 = filedialog.askopenfile (initialdir ="/", mode ="r") #r sta per solo lettura
    print (file1)
    file_type = (mimetypes.MimeTypes().guess_type(file = 'file1'))
    x = file_type 

    if x == ('application/pdf') :
        messagebox.showinfo("Disclaimer","Upload done", icon ='info')
    else : 
        messagebox.showinfo("Disclaimer","choose a PDF file", icon ='warning')
此代码不起作用,因为它说:

 file_type = (mimetypes.MimeTypes().guess_type(file = 'file1'))
 TypeError: guess_type() got an unexpected keyword argument 'file

file
不是
guess\u type
函数的有效参数
guess\u type
要求文件名为文件名。如果
file1
是您的文件名,则需要执行以下操作:

file_type = mimetypes.MimeTypes().guess_type(file)
您可以查看此函数的文档

相关部分:

mimetypes.guess\u类型(url,strict=True)

根据URL给出的文件名或URL猜测文件类型。返回值是一个元组(类型,编码),如果无法猜测类型(缺少或未知后缀),则类型为None,或者是一个“类型/子类型”形式的字符串,可用于MIME内容类型头