使用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()
是主函数,它执行以下操作:selected_path
变量为None
,用于存储所选的文件或文件夹路径。select_folder()
函数,用于选择文件夹路径。它使用filedialog.askdirectory()
函数弹出一个文件夹选择对话框,并将所选的文件夹路径存储在folder_path
变量中。
selected_path
设置为folder_path
,然后使用root.withdraw()
隐藏根窗口,最后使用root.destroy()
关闭根窗口。select_file()
函数,用于选择文件路径。它使用filedialog.askopenfilename()
函数弹出一个文件选择对话框,并将所选的文件路径存储在file_path
变量中。
selected_path
设置为file_path
,然后使用root.withdraw()
隐藏根窗口,最后使用root.destroy()
关闭根窗口。select_option()
函数,根据用户选择的选项调用相应的函数。
select_file()
函数。select_folder()
函数。root
,并使用root.withdraw()
隐藏窗口。option
,用于存储用户选择的选项。label
,显示文本"Select an option:"。file_button
和folder_button
,分别表示选择文件和选择文件夹的选项。
option
变量,并在选择时调用相应的函数。root.deiconify()
方法。selected_path
,即用户所选的文件或文件夹路径。最后,在调用select_file_or_folder()
函数时,将所选路径存储在变量path
中,并打印到控制台。
该代码通过使用tkinter
库提供的对话框函数,结合使用标签和单选按钮,创建了一个简单的图形界面,以实现选择文件或文件夹的功能。