对话框之filedialog

#filedialog文件对话框
1.文件流和文件区别
指的是在传递过程中的文件,比如你上传一张图片,那么他不是以一个完整的图片传输的,
是将文件按特定编码的字符传输,这个就是文件流。
2.文件对话框:
打开的是个文件流,可进行读写操作,如word。
askopenfile():打开文件获取单个文件指针,具有open()的作用
askopenfiles():打开对话框,返回多个所选择文件的文件流,程序可通过这些文件流来读取文件内容。
asksaveasfile():生成保存文件的对话框,返回所选择文件的文件输出流,程序可通过该文件输出流向文件写入数据。

打开的是个路径,如告诉压缩软件要压缩文件的路径:
askopenfilename():选择 单个文件,获取其路径。
askopenfilenames():选择 多个文件,获取其路径组成的元组。
asksaveasfilename():生成保存文件的对话框,保存压缩文件的路径,返回所选择文件的文件路径。

askdirectory():打开文件夹。

3.上面的用于生成打开文件的对话框的工具函数支持如下选项:
title:指定对话框的标题。
filetypes:指定在该文件对话框中能查看的文件类型。该选项值是一个序列,可指定多个文件类型,可以通过“*”指定浏览所有文件。
initialdir:指定初始打开的目录。
initialfile:指定所选择的文件。
defaultextension:指定默认扩展名。当用户没有输入扩展名时,系统会默认添加该选项指定的扩展名。
parent:指定该对话框的属主窗口。不指定,则对话框默认显示在根窗口上。可以指定显示在某个子窗口上。
multiple:指定是否允许多选。对于打开文件夹的对话框,还额外支持一个 mustexist 选项,该选项指定是否只允许打开己存在的目录。
from tkinter import *
from tkinter import ttk
from tkinter import filedialog

root = Tk()
root.title('文件对话框')
root.resizable(1,1)

topLF = ttk.LabelFrame(root,text='打开文件流')
topLF.pack(side=TOP,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)

def open_file():
    print(filedialog.askopenfile(title='打开单个文件',
                                 filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                 initialdir='c:/',initialfile='test'))
def open_files():
    print(filedialog.askopenfiles(title='打开多个文件',
                                  filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                  initialdir='c:/'))
def save_file():
    print(filedialog.asksaveasfile(title='保存文件',
                                   filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                   initialdir='c:/'))
Button(topLF,text='打开单个文件',command=open_file).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)
Button(topLF,text='打开多个文件',command=open_files).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)
Button(topLF,text='保存文件',command=save_file).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)

middleLF = ttk.LabelFrame(root,text='获取文件路径')
middleLF.pack(side=TOP,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)

def open_filename():
    print(filedialog.askopenfilename(title='打开单个文件名',
                                     filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                     initialdir='c:/'))
def open_filenames():
     print(filedialog.askopenfilenames(title='打开多个文件名',
                                      filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                      initialdir='c:/'))
def save_filename():
    print(filedialog.asksaveasfilename(title='保存文件名',
                                       filetypes=[("文本文件", "*.txt"), ('Python源文件', '*.py')],
                                       initialdir='c:/'))

Button(middleLF,text='打开单个文件名',command=open_filename).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)
Button(middleLF,text='打开多个文件名',command=open_filenames).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)
Button(middleLF,text='保存文件名',command=save_filename).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)


bottomLF = ttk.LabelFrame(root,text='打开文件夹')
bottomLF.pack(side=TOP,fill=X,expand=1,ipadx=5,ipady=5,padx=5,pady=5)

def open_dir():
    print(filedialog.askdirectory(title='打开文件夹',
                                  initialdir='c:/'))

Button(bottomLF,text='文件夹',command=open_dir).pack(side=LEFT,fill=X,expand=1,ipadx=5,ipady=5)


root.mainloop()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值