使用Tkinter选择Excel文件路径时返回None的问题排查
问题原因及解决方法
你的open_file函数没有返回计算好的文件路径,所以调用该函数时默认返回None,这就是filepath显示None的原因。另外还需要处理用户取消选择文件的情况,避免出现属性错误。
修改后的代码
import numpy as np import openpyxl import matplotlib.pyplot as plt #import plotly.graph_objects as go import tkinter from tkinter import filedialog import os root = tkinter.Tk() root.withdraw() def open_file(): file = filedialog.askopenfile(mode='r', filetypes=[('Excel Files', '*.xlsx')]) # 先判断用户是否选择了文件 if file: filepath = os.path.abspath(file.name) return filepath # 返回文件路径 return None # 用户取消选择时返回None def search_for_file_path_dest(): currdir = os.getcwd() tempdir = filedialog.askdirectory(parent=root, initialdir=currdir, title='Please select the destination directory') if len(tempdir) > 0: print ("You chose: %s" % tempdir) return tempdir filepath = open_file() file_path_variabledest = search_for_file_path_dest() print(filepath) print(file_path_variabledest)
关键修改点
- 在
open_file函数中,添加return filepath语句,将计算好的文件路径返回给调用者 - 增加对
file是否为None的判断,防止用户取消选择时触发AttributeError(因为None没有name属性)
内容的提问来源于stack exchange,提问作者Dedder
相关产品推荐
相关产品推荐

