python tkinter 文件对话框filedialog

选择以什么文件名保存,返回文件名
tkinter.filedialog.asksaveasfilename()
选择以什么文件保存,创建文件并返回文件流对象
tkinter.filedialog.asksaveasfile()
选择打开什么文件,返回文件名
tkinter.filedialog.askopenfilename()
选择打开什么文件,返回IO流对象
tkinter.filedialog.askopenfile()
选择目录,返回目录名
tkinter.filedialog.askdirectory()
选择打开多个文件,以元组形式返回多个文件名
tkinter.filedialog.askopenfilenames()
选择打开多个文件,以列表形式返回多个IO流对象
tkinter.filedialog.askopenfiles()

打开文件对话框,选择一个文件,返回路径字符串:

python tkinter 文件对话框filedialog

示例代码:

from tkinter import filedialog
#文本框用来显示文件路径
strPath = StringVar()
Entry(top,textvariable = strPath)

#响应按钮事件,在文本框显示路径字符串
filePath=filedialog.askopenfilename()
    if(filePath != ''):
        strPath.set(filePath)

完整代码

选择文件对话框的格式:

  • tkinter.filedialog.asksaveasfilename():选择以什么文件名保存,返回文件名
  • tkinter.filedialog.asksaveasfile():选择以什么文件保存,创建文件并返回文件流对象
  • tkinter.filedialog.askopenfilename():选择打开什么文件,返回文件名
  • tkinter.filedialog.askopenfile():选择打开什么文件,返回IO流对象
  • tkinter.filedialog.askdirectory():选择目录,返回目录名
  • tkinter.filedialog.askopenfilenames():选择打开多个文件,以元组形式返回多个文件名
  • tkinter.filedialog.askopenfiles():选择打开多个文件,以列表形式返回多个IO流对象
import tkinter.filedialog
from tkinter import *
def func1():
    a=tkinter.filedialog.asksaveasfilename()#返回文件名
    print(a)
    a =tkinter.filedialog.asksaveasfile()#会创建文件
    print(a)
    a =tkinter.filedialog.askopenfilename()#返回文件名
    print(a)
    a =tkinter.filedialog.askopenfile()#返回文件流对象
    print(a)
    a =tkinter.filedialog.askdirectory()#返回目录名
    print(a)
    a =tkinter.filedialog.askopenfilenames()#可以返回多个文件名
    print(a)
    a =tkinter.filedialog.askopenfiles()#多个文件流对象
    print(a)
root=Tk()

btn1=Button(root,text="click",command=func1)

btn1.pack()

root.mainloop()

设置扩展类型:

# _*_ coding:utf-8 _*_

import tkinter
from tkinter import filedialog

def openfiles2():
    s2fname = filedialog.askopenfilename(title='打开S2文件', filetypes=[('S2out', '*.out'), ('All Files', '*')])
    print(s2fname)
def openfilecgns():
    cgnsfname = filedialog.askopenfilename(title='打开CGNS文件',filetypes=[('CGNSdat', '*.dat'), ('All Files', '*')] )
    print(cgnsfname)
 
root = tkinter.Tk()
#root.geometry('500x300+500+200')
btn1 = tkinter.Button(root, text='打开S2文件',font =("宋体",20,'bold'),width=13,height=8, command=openfiles2)
btn2 = tkinter.Button(root, text='打开CGNS文件',font = ('宋体',20,'bold'),width=13,height=8, command=openfilecgns)
 
btn1.pack(side='left')
btn2.pack(side='left')
root.mainloop()

选择一组文件:

from tkinter import *
import tkinter.filedialog
root = Tk()

def xz():
    filenames = tkinter.filedialog.askopenfilenames()
    if len(filenames) != 0:
        string_filename =""
        for i in range(0,len(filenames)):
            string_filename += str(filenames[i])+"\n"
        lb.config(text = "您选择的文件是:"+string_filename)
    else:
        lb.config(text = "您没有选择任何文件");

lb = Label(root,text = '')
lb.pack()
btn = Button(root,text="弹出选择文件对话框",command=xz)
btn.pack()
root.mainloop()

示例程序完整代码:

#!/usr/bin/python
#-*-coding:utf-8 -*-

from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
import tkinter as tk
from _ast import If

top = tk.Tk()
#这里四个参数分别为:宽、高、左、上
top.geometry("500x300+750+200")

top.title("www.tianqiweiqi.com")
    
strPath = StringVar()
strResult = StringVar()

def pathCallBack():
    filePath=filedialog.askopenfilename();
    if(filePath != ''):
        strPath.set(filePath);
    
    
def okCallBack():
    strResult = 'i love you!'
    txtResult.delete(0.0, tk.END)
    txtResult.insert(tk.INSERT, strResult)
    txtResult.update()

btnPath = tk.Button(top,
                  text='选择',
                  width=10,
                  command = pathCallBack)
btnOk = tk.Button(top,
                  text='转换',
                  width=10,
                  command = okCallBack)
Label(top,text="图片路径:").grid(row=0,column=0)
Entry(top,width=45,textvariable = strPath).grid(row=0,column=1)
btnPath.grid(row=0,column=2);


Label(top,text="文本内容:").grid(row=2,column=0)
txtResult = Text(top,width=45,height=15)

txtResult.grid(row=3,column=1)
txtResult.insert(tk.END,'Do you love me?')

btnOk.grid(row=4,column=2);

top.mainloop();

这是个实用的小程序,调用百度AI识别图片中文字:

python tkinter 文件对话框filedialog

总结一下filedialog对话框

(1).参数 

可用选项及含义

选项含义
defaultextension指定 文件的后缀,例如: deiautetension=”. ipg”,那么当用户输人一个文件名”FishC”的时候,文件名会 自动添加后缀为”FishC. ipg”。注意:如果用户输人文件名包含后缀,那么该选项不生效
filetypes指定筛选文件类型的下拉菜单选项,该选项的值是由2元组构成的列表。每个2元组由(类型名,后缀)构成,例如,filetypes=[(“PNG”, “. png”), (“JPG”,”.jpg”),(“GIF”,”. gif”)]
initialdir指定打开/保存文件的默认路径。默认路径是当前文件夹
parent 如果不指定该选项,那么对话框默认显示在根窗口上。如果想要将对话框显示在子窗口w上,那么可以设置parent=w
title指定文件对话框的标题栏文本

(2).返回值 
如果用户选择了一个文件,那么返回值是该文件的完整路径 
如果用户单机取消按钮,那么返回值是空字符串

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表评论

电子邮件地址不会被公开。