第17讲,filedialog 文件对话框

文件对话框是桌面应用里经常使用的功能,你想从本地选择一个文件,需要使用文件对话框,你想将一个文件保存起来,选择保存路径的时候,需要使用文件对话框。

文件对话框的功能非常多,咱们先只学习最常用的3个

1. 使用文件对话框选择一个文件,获得文件的绝对路径

先设计界面,效果图如下
tkinter filedialog
点击右侧的选择按钮,弹出文件对话框,选中一个文件后点击open按钮

最后再左侧的输入框里显示所选择文件的路径
tkinter filedialog

示例代码:

import tkinter as tk
from tkinter import filedialog


window = tk.Tk()
window.title('文件对话框')        # 设置窗口的标题
window.geometry('300x50')          # 设置窗口的大小

path_var = tk.StringVar()
entry = tk.Entry(window, textvariable=path_var)
entry.place(x=10, y=10, anchor='nw')


def click():
    # 设置可以选择的文件类型,不属于这个类型的,无法被选中
    filetypes = [("文本文件", "*.txt"), ('Python源文件', '*.py')]
    file_name= filedialog.askopenfilename(title='选择单个文件',
                                  filetypes=filetypes,
                                  initialdir='./'           # 打开当前程序工作目录
                                             )
    path_var.set(file_name)

tk.Button(window, text='选择', command=click).place(x=220, y=10, anchor='nw')
window.mainloop()

选择文件后,点击文件对话框的open按钮,文件对话框就会小时,同时返回所选择文件的路径。

2. 使用文件对话框选择一个文件目录

如果你想选择一个文件目录来进行操作,那么就可以使用askdirectory方法

"""
使用文件对话框选择一个文件夹
"""

import tkinter as tk
from tkinter import filedialog


window = tk.Tk()
window.title('文件对话框')        # 设置窗口的标题
window.geometry('300x50')          # 设置窗口的大小

path_var = tk.StringVar()
entry = tk.Entry(window, textvariable=path_var)
entry.place(x=10, y=10, anchor='nw')


def click():
    file_name= filedialog.askdirectory(title='选择一个文件夹',
                                  initialdir='./'           # 打开当前程序工作目录
                                             )
    path_var.set(file_name)

tk.Button(window, text='选择', command=click).place(x=220, y=10, anchor='nw')
window.mainloop()

操作过程与选择文件基本一致,效果图如下
tkinter filedialog

3. 获取保存文件的路径

先看效果图
tkinter filedialog
点击选择后,弹出的对话框要求你输入文件名,选择文件夹,点击save后,在界面左侧的输入框里会显示文件的保存地址,当然,这个程序只是获取了文件路径,如何保存,需要你进一步操作
示例代码

"""
获取保存文件的文件名
"""

import tkinter as tk
from tkinter import filedialog, messagebox


window = tk.Tk()
window.title('文件对话框')        # 设置窗口的标题
window.geometry('300x50')          # 设置窗口的大小


path_var = tk.StringVar()
entry = tk.Entry(window, textvariable=path_var)
entry.place(x=10, y=10, anchor='nw')

def click():
    filetypes = [("文本文件", "*.txt"), ('Python源文件', '*.py')]
    file_name= filedialog.asksaveasfilename(title='保存文件',
                                            filetypes=filetypes,
                                            initialdir='./'           # 打开当前程序工作目录
                                             )
    path_var.set(file_name)

tk.Button(window, text='选择', command=click).place(x=220, y=10, anchor='nw')
window.mainloop()

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案