python Tkinter模块中如何利用filedialog打开文件,并且获得路径传入到另外一个函数中?

1.自己写了一个本地的函数,想设计成windows本地选择图片的形式,并且获得本地的路径,将路径传入到另外一个函数中进行分析。现在我能够把按钮做出来,但是,通过选择本地图片,无法获得路径传入到另外一个函数做分析。

def get_filepath():
    filepath = filedialog.askopenfilename()
    return filepath

window = tk.Tk()
window.title("aabbcc")
window.geometry('1280x720')
button1 = tk.Button(window,text="法人身份证",width=15,height=2,command=get_filepath).place(x=50,y=50)
button2 = tk.Button(window,text="财务负责人身份证",width=15,height=2,command=get_filepath).place(x=200,y=50)

window.mainloop()

这里我想获得程序运行后点击图片后,button1的文件路径,然后传入到另外一个函数中分析,现在可以做成本地选择照片的形式,但是无法获得button1的文件路径,我找了很久,都无法获得答案,先谢谢各位了。

阅读 2.5k
1 个回答

你这不是filedialog问题,而是button问题啊
你这button中应该是调用另外的函数来对filedialog返回值进行处理,现在你直接调用的是get_filepath,这在逻辑上就不对啊。

def get_filepath():
    filepath = filedialog.askopenfilename()
    return filepath
def bt1Fun(): # 对应按钮1的处理逻辑
    file=get_filepath()
    if  file != '':#获取到了有效文件路径才进行处理
       ... # 你具体的处理逻辑
def bt2Fun(): # 对应按钮2的处理逻辑
    file=get_filepath()
    if  file != '':#获取到了有效文件路径才进行处理
       ... # 你具体的处理逻辑

window = tk.Tk()
window.title("aabbcc")
window.geometry('1280x720')
button1 = tk.Button(window,text="法人身份证",width=15,height=2,command=bt1Fun ).place(x=50,y=50)
button2 = tk.Button(window,text="财务负责人身份证",width=15,height=2,command=bt2Fun ).place(x=200,y=50)

window.mainloop()

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏