python - вспомнить просмотренный файл - PullRequest
1 голос
/ 19 июня 2020

Я пишу программу, в которой пользователь просматривает 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

1 Ответ

1 голос
/ 19 июня 2020

file не является допустимым аргументом для функции guess_type. guess_type ожидает имя файла для файла. Если file1 - это имя вашего файла, то вы хотите сделать

file_type = mimetypes.MimeTypes().guess_type(file)

Вы можете увидеть документацию по этой функции python docs

Соответствующая часть :

mimetypes.guess_type (url, strict = True)

Угадайте тип файла на основе его имени файла или URL-адреса, заданного URL-адресом. Возвращаемое значение - кортеж (тип, кодировка), где тип равен None, если тип не может быть угадан (отсутствующий или неизвестный суффикс), или строка формы «тип / подтип», которую можно использовать для заголовка типа содержимого MIME.

...