【Python】【tkinter 】先通过图形界面选择文件或文件夹,然后输出用户选择的文件或文件夹的路径

窗口选择文件或者文件夹:

使用tkinter库创建一个简单的图形界面,允许用户选择文件或文件夹,并返回所选路径。

import tkinter as tk
from tkinter import filedialog

def select_file_or_folder():
    selected_path = None

    def select_folder():
        nonlocal selected_path
        folder_path = filedialog.askdirectory()
        if folder_path:
            selected_path = folder_path
            root.withdraw()
            root.destroy()
    
    def select_file():
        nonlocal selected_path
        file_path = filedialog.askopenfilename()
        if file_path:
            selected_path = file_path
            root.withdraw()
            root.destroy()
    
    def select_option():
        if option.get() == 1:
            select_file()
        elif option.get() == 2:
            select_folder()

    root = tk.Tk()
    root.withdraw()

    option = tk.IntVar()

    label = tk.Label(root, text="Select an option:")
    label.pack()

    file_button = tk.Radiobutton(root, text="选择一个文件", variable=option, value=1, command=select_file)
    file_button.pack()

    folder_button = tk.Radiobutton(root, text="选择文件夹", variable=option, value=2, command=select_folder)
    folder_button.pack()

    root.deiconify()  # 显示窗口
    root.mainloop()

    return selected_path

path = select_file_or_folder()
print(path)

select_folder()select_file()函数内部调用了root.withdraw()来隐藏窗口,并使用root.destroy()来关闭窗口。这样,在选择文件或文件夹后,根窗口将被隐藏或关闭。

函数select_file_or_folder()是主函数,它执行以下操作:

  1. 初始化selected_path变量为None,用于存储所选的文件或文件夹路径。
  2. 定义select_folder()函数,用于选择文件夹路径。它使用filedialog.askdirectory()函数弹出一个文件夹选择对话框,并将所选的文件夹路径存储在folder_path变量中。
    • 如果选择了文件夹路径,将selected_path设置为folder_path,然后使用root.withdraw()隐藏根窗口,最后使用root.destroy()关闭根窗口。
  3. 定义select_file()函数,用于选择文件路径。它使用filedialog.askopenfilename()函数弹出一个文件选择对话框,并将所选的文件路径存储在file_path变量中。
    • 如果选择了文件路径,将selected_path设置为file_path,然后使用root.withdraw()隐藏根窗口,最后使用root.destroy()关闭根窗口。
  4. 定义select_option()函数,根据用户选择的选项调用相应的函数。
    • 如果选项为1,调用select_file()函数。
    • 如果选项为2,调用select_folder()函数。
  5. 创建根窗口root,并使用root.withdraw()隐藏窗口。
  6. 创建一个整型变量option,用于存储用户选择的选项。
  7. 创建一个标签label,显示文本"Select an option:"。
  8. 创建两个单选按钮file_buttonfolder_button,分别表示选择文件和选择文件夹的选项。
    • 它们绑定到option变量,并在选择时调用相应的函数。
  9. 显示窗口,使用root.deiconify()方法。
  10. 进入主事件循环,等待用户交互,直到用户进行选择并关闭窗口。
  11. 返回selected_path,即用户所选的文件或文件夹路径。

最后,在调用select_file_or_folder()函数时,将所选路径存储在变量path中,并打印到控制台。

该代码通过使用tkinter库提供的对话框函数,结合使用标签和单选按钮,创建了一个简单的图形界面,以实现选择文件或文件夹的功能。

你可能感兴趣的:(python,tkinter,python,开发语言)