您现在的位置是:网站首页> 编程资料编程资料
Python中使用tkFileDialog实现文件选择、保存和路径选择_python_
2023-05-26
376人已围观
简介 Python中使用tkFileDialog实现文件选择、保存和路径选择_python_
使用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 _tkinterimport tkintertkinter._test()
在python3中输入以上命令进行验证。
解决方法
Python2中应该写成
from tkFileDialog import askdirectory
python3中应该写成
from tkinter.filedialog import askdirectory
tkColorChooser ------------>tkinter.colorchooser
tkCommonDialog --------------->tkinter.commondialog
其他的可以类推。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- 代码解析python标准库logging模块_python_
- Python如何读取16进制byte数据_python_
- Python如何存储和读取ASCII码形式的byte数据_python_
- python中的编码和解码及\x和\u问题_python_
- Python实现for循环倒序遍历列表_python_
- Python实现在Excel文件中写入图表_python_
- python学习之列表的运用_python_
- python中文文本切词Kmeans聚类_python_
- Python自动化办公之创建PPT文件_python_
- Python函数值传递引用传递及形式参数和实际参数的区别_python_
