首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

Python中使用tkFileDialog实现文件选择、保存和路径选择

2022-05-21 05:55:08 来源 : 软件开发网

目录

使用tkFileDialog实现文件选择、保存和路径选择

概述

示例

ImportError: No module named "tkFileDialog"问题

原因

验证

解决方法

使用tkFileDialog实现文件选择、保存和路径选择概述

看了下Tkinter的文档,对于Pop-up dialog有三类,现在用到的是tkFileDialog

tkFileDialog有三种形式:

一个是:askopenfilename(option=value, …) 这个是”打开”对话框

一个是:asksaveasfilename(option=value, …) 这个是另存为对话框

另一个是:askdirectory()这个是路径选择对话框

option参数如下:

defaultextension = s默认文件的扩展名

filetypes = [(label1, pattern1), (label2, pattern2), …]设置文件类型下拉菜单里的的选项

initialdir = D对话框中默认的路径

initialfile = F对话框中初始化显示的文件名

parent = W父对话框(由哪个窗口弹出就在哪个上端)

title = T弹出对话框的标题

如果选中文件的话,确认后会显示文件的完整路径,否则单击取消的话会返回空字符串

示例#coding=UTF-8 import Tkinter, Tkconstants, tkFileDialog class TkFileDialogExample(Tkinter.Frame): def __init__(self, root): Tkinter.Frame.__init__(self, root) # options for buttons button_opt = {"fill": Tkconstants.BOTH, "padx": 5, "pady": 5} # define buttons Tkinter.Button(self, text="askopenfile", command=self.askopenfile).pack(**button_opt) Tkinter.Button(self, text="askopenfilename", command=self.askopenfilename).pack(**button_opt) Tkinter.Button(self, text="asksaveasfile", command=self.asksaveasfile).pack(**button_opt) Tkinter.Button(self, text="asksaveasfilename", command=self.asksaveasfilename).pack(**button_opt) Tkinter.Button(self, text="askdirectory", command=self.askdirectory).pack(**button_opt) # define options for opening or saving a file self.file_opt = options = {} options["defaultextension"] = ".txt" options["filetypes"] = [("all files", ".*"), ("text files", ".txt")] options["initialdir"] = "C:\\" options["initialfile"] = "myfile.txt" options["parent"] = root options["title"] = "This is a title" # This is only available on the Macintosh, and only when Navigation Services are installed. #options["message"] = "message" # if you use the multiple file version of the module functions this option is set automatically. #options["multiple"] = 1 # defining options for opening a directory self.dir_opt = options = {} options["initialdir"] = "C:\\" options["mustexist"] = False options["parent"] = root options["title"] = "This is a title" def askopenfile(self): """Returns an opened file in read mode.""" return tkFileDialog.askopenfile(mode="r", **self.file_opt) def askopenfilename(self): """Returns an opened file in read mode. This time the dialog just returns a filename and the file is opened by your own code. """ # get filename filename = tkFileDialog.askopenfilename(**self.file_opt) # open file on your own if filename: return open(filename, "r") def asksaveasfile(self): """Returns an opened file in write mode.""" return tkFileDialog.asksaveasfile(mode="w", **self.file_opt) def asksaveasfilename(self): """Returns an opened file in write mode. This time the dialog just returns a filename and the file is opened by your own code. """ # get filename filename = tkFileDialog.asksaveasfilename(**self.file_opt) # open file on your own if filename: return open(filename, "w") def askdirectory(self): """Returns a selected directoryname.""" return tkFileDialog.askdirectory(**self.dir_opt) if __name__ == "__main__": root = Tkinter.Tk() TkFileDialogExample(root).pack() root.mainloop() ImportError: No module named "tkFileDialog"问题原因

python2和pyton3的版本问题。python3之后的版本自带有tkinter.

验证

import _tkinter

import tkinter

tkinter._test()

在python3中输入以上命令进行验证。

解决方法

Python2中应该写成

from tkFileDialog import askdirectory

python3中应该写成

from tkinter.filedialog import askdirectory

tkColorChooser ------------>tkinter.colorchoosertkCommonDialog --------------->tkinter.commondialog

其他的可以类推。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。

标签: 路径选择 支持软件 希望大家

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28