python tkinter选择框_tkinter选择文件(夹)的对话框

GUI程序与用户交互,一个重要的方面就是让用户选择文件或文件夹,比如选择要执行某个动作的文件或文件夹,或者要选择一个文件来保存某些内容的时候。Python标准的tkinter.filedialog模块,提供了这类对话框实现的简单接口。

askopenfilename

这个对话框,可以让用户选择一个文件。

>>> import tkinter as tk

>>> root = tk.Tk()

>>> from tkinter.filedialog import (askopenfilename,

askopenfilenames,

askdirectory,

asksaveasfilename)

>>>

>>> askopenfilename()

'/home/xinlin/repos/sendslip/config.ini'

>>> askopenfilename()

>>> ''

askopenfilename.jpgaskopenfilename

上面示例代码,调用askopenfilename没有使用任何参数,选择一个文件,返回此文件路径的字符串,如果不选择,Cancel或直接关闭,返回一个空的字符串(测试时出现过Cancel或直接关闭,返回空tuple)。

askopenfilename函数(本文介绍的其它几个函数一样)还有几个参数可以考虑使用,要采用key=value的方式:

askopenfilename(title='Please choose a file',

initialdir='/', filetypes=[('Python source file','*.py')])

ask_canshu.jpg指定参数的askopenfilename

title,窗口名称;initialdir初始路径;filetypes,文件类型。

askopenfilenames

这个对话框,可以让用户同时选择多个文件。

>>> askopenfilenames()

('/home/xinlin/repos/sendslip/config.ini', '/home/xinlin/repos/sendslip/README.md', '/home/xinlin/repos/sendslip/sendslip.py', '/home/xinlin/repos/sendslip/sendslip2.py')

>>> askopenfilenames()

('/home/xinlin/repos/sendslip/sendslip2.py',)

>>> askopenfilenames()

''

打开的对话框样子是一样的,就不再贴图了。

askopenfilenames可以同时选择多个文件(按住Ctrl键多选),返回一个tuple,tuple的每个元素都是一个pathname,如果只选择一个文件,也是返回tuple,里面包含一个元素。如果Cancel或者直接关闭,返回空字符串。

askdirectory

这个对话框,要求用户选择一个文件夹。

>>> askdirectory()

'/home/xinlin/repos/auto10g'

>>> askdirectory()

''

>>> askdirectory()

()

askdirectory.jpgaskdirectory

返回选择的文件夹路径,Cancel或直接关闭,返回空串(再次出现了返回空tuple)。

asksaveasfilename

让用户指定一个文件保存数据。

>>> asksaveasfilename()

'/home/xinlin/repos/sendslip/dasdfasd.kkk'

>>> asksaveasfilename()

''

asksaveasfile.jpgasksaveasfilename

此函数返回一个pathname字符串,如果Cancel或者直接关闭窗口,返回空字符串。返回的文件名如何操作,是其它代码的事情,这个对话框只是返回选择的文件名。

filedialog子模块内还有几个ask...函数,它们会返回已经打开的文件句柄,而不是返回文件的pathname,本人是不建议使用这几个函数的,它们是:askopenfile,askopenfiles,asksaveasfile。这几个函数所在的源文件,有写着 FIXME 这样的注释,也在质疑它们是不是“太方便”了......

以上就是对tkinter.filedialog模块中提供的选择文件或文件夹的对话框的介绍。

-- EOF --

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值