pythonpython-3.xfileopendialog

askopenfile() got multiple values for argument 'mode' in python


I am writing a python program in python which require that I use open Dialog

but I am getting the following error

askopenfile() got multiple values for argument 'mode'

My code

def open_file():
    browse_text.set("loading...")
    file = askopenfile(root, mode='r', title="Choose a file", filetype=[("pdf file", "*.pdf")])
    if file:
        read_file = PyPDF2.PdfFileReader(file)
        page = read_file.getPage(0)
        page_content = page.extractText()

        text_box = tk.Tex(root, height=10, width=50, padx=15, pady=15)
        text_box.insert(1.0, page_content)
        text_box.grid(column=1, row=3)

browse_text = tk.StringVar();
browse_btn = tk.Button(root, textvariable=browse_text, command=lambda: open_file(), bg="blue", fg="white", font="arial", height=3, width=15)
browse_text.set("Open file")

Solution

  • askopenfile does not accept a root parameter.

    >>> from tkinter.filedialog import askopenfile
    >>> help(askopenfile)
    Help on function askopenfile in module tkinter.filedialog:
    
    askopenfile(mode='r', **options)
        Ask for a filename to open, and returned the opened file
    

    So just change

    file = askopenfile(root, mode='r', title="Choose a file", filetype=[("pdf file", "*.pdf")])
    

    to

    file = askopenfile(mode='r', title="Choose a file", filetype=[("pdf file", "*.pdf")])