当前位置:   article > 正文

Tkinter 文件对话框filedialog模块_tkinter.filedialog.askopenfile

tkinter.filedialog.askopenfile

转载:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45417938/article/details/105729589

在filedialog模块下提供了各种用于生成文件对话框的工具函数,如下所示:
    askopenfile():生成打开单个文件的对话框,返回所选文件的文件流,程序可通过该文件流读取文件内容
    askopenfiles():生成打开多个文件的对话框,返回多个所选择文件的文件流组成的列表,程序可通过这些文件流读取文件内容
    askopenfilename():生成打开单个文件的对话框,返回所选择文件的文件路径
    askopenfilenames():生成打开多个文件的对话框,返回多个所选择文件的文件路径组成的元组
    asksaveasfile():生成保存文件的对话框,返回所选文件的文件输出流,程序可通过该文件输出流向文件写入数据
    asksaveasfilename():生成保存文件的对话框,返回所选择文件的文件路径
    askdirectory():生成打开目录的对话框
上面用于生成打开文件的对话框的工具函数有如下选项
    defaultextension:指定默认拓展名,当用户没有输入拓展名时,系统会默认添加该选项指定的拓展名
    filetypes:指定该文件对话框中能查看的文件类型。该选项是一个序列,可能指定多个文件类型,可通过“*”只当浏览所有文件
    initialdir:指定初始打开的目录
    initialfile:指定所选择的文件
    parent:指定该对话框的属主窗口
    title:指定该对话框的标题
    multiple:只当是否允许多选

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

下面代码演示了文件对话框的各个工具函数的用法:

from tkinter import *
# 导入ttk
from tkinter import ttk
# 导入filedialog
from tkinter import filedialog


class App:
    def __init__(self, master):
        self.master = master
        self.initWidgets()

    def initWidgets(self):
        # 创建7个按钮,并为之绑定事件处理方法
        ttk.Button(self.master, text='打开单个文件', command=self.open_file).pack(side=LEFT, ipadx=5, ipady=5, padx=10)
        ttk.Button(self.master, text='打开多个文件', command=self.open_files).pack(side=LEFT, ipadx=5, ipady=5, padx=10)
        ttk.Button(self.master, text='获取单个打开文件的文件名', command=self.open_filename).pack(side=LEFT, ipadx=5, ipady=5,
                                                                                      padx=10)
        ttk.Button(self.master, text='获取多个打开文件的文件名', command=self.open_filenames).pack(side=LEFT, ipadx=5, ipady=5,
                                                                                       padx=10)
        ttk.Button(self.master, text='获取保存文件', command=self.save_file).pack(side=LEFT, ipadx=5, ipady=5, padx=10)
        ttk.Button(self.master, text='获取保存文件的文件名', command=self.save_filename).pack(side=LEFT, ipadx=5, ipady=5,
                                                                                    padx=10)
        ttk.Button(self.master, text='打开目录', command=self.open_directory).pack(side=LEFT, ipadx=5, ipady=5, padx=10)

    def open_file(self):
        # 调用askopenfile方法获取单个打开的文件
        print(filedialog.askopenfile(title='打开单个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],  # 只处理的文件类型
                                     initialdir='d:/'))  # 初始目录

    def open_files(self):
        # 调用askopenfiles方法获取多个打开的文件
        print(filedialog.askopenfiles(title='打开多个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],  # 只处理的文件类型
                                      initialdir='d:/'))  # 初始目录

    def open_filename(self):
        # 调用askopenfilename方法获取单个文件的文件名
        print(filedialog.askopenfilename(title='打开单个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],
                                         # 只处理的文件类型
                                         initialdir='d:/'))  # 初始目录

    def open_filenames(self):
        # 调用askopenfilenames方法获取多个文件的文件名
        print(filedialog.askopenfilenames(title='打开多个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],
                                          # 只处理的文件类型
                                          initialdir='d:/'))  # 初始目录

    def save_file(self):
        # 调用asksaveasfile方法保存文件
        print(filedialog.asksaveasfile(title='保存文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],  # 只处理的文件类型
                                       initialdir='d:/'))  # 初始目录

    def save_filename(self):
        # 调用asksaveasfilename方法获取保存文件的文件名
        print(filedialog.asksaveasfilename(title='保存文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')],
                                           # 只处理的文件类型
                                           initialdir='d:/'))  # 初始目录

    def open_directory(self):
        # 调用askdirectory方法打开目录
        print(filedialog.askdirectory(title='打开目录',
                                      initialdir='d:/'))  # 初始目录


root = Tk()
root.title('文件对话框测试')
App(root)
root.mainloop()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 效果如图:在这里插入图片描述
  • 点击按钮:打开单个文件
    在这里插入图片描述

当选择打开指定文件后可以在控制台看到被打开文件的文件流

在这里插入图片描述

可选文件类型为我们代码中设置的txt文本文件和pyPython源文件
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/499234
推荐阅读
相关标签
  

闽ICP备14008679号