如何将用户选择的文件名存入Python字典?
问题修复方案
你的代码存在几处问题,以下是修复后的完整代码及问题说明:
import os from tkinter import filedialog as fd import tkinter as tk # 初始化tkinter根窗口(必须,否则部分环境下文件选择框无法弹出) root = tk.Tk() root.withdraw() # 隐藏主窗口,只显示文件选择弹窗 def select_study_file(): # 使用当前工作目录作为初始打开路径 cur_dir = os.getcwd() study_path = fd.askopenfilename(initialdir=cur_dir, title='Select Study case') # 处理用户取消选择的场景 if study_path: return os.path.basename(study_path) return "" # 获取选择的文件名并存入字典 selected_file = select_study_file() config_dic = {"study_case": selected_file} # 打印验证结果 print(config_dic)
原代码的问题点:
- 缺少必要模块导入:使用
os.path.basename但未导入os;tkinter文件选择框需要先初始化根窗口,否则部分环境无法正常弹出,因此要导入tkinter并创建根实例。 - 未定义
cur_dir变量:直接用os.getcwd()获取当前工作目录作为初始路径即可。 - 局部变量无法外部访问:函数内的
study是局部变量,外部无法直接调用,通过让函数返回文件名,调用后用变量接收即可解决。 - 未处理取消选择的情况:用户打开选择框后点击取消时,
askopenfilename会返回空字符串,增加判断可以避免异常场景。
内容的提问来源于stack exchange,提问作者Sarvesh Gadre
相关产品推荐
相关产品推荐

