千家信息网

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

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇"Python中怎么使用tkFileDialog实现文件选择、保存和路径选择"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这
千家信息网最后更新 2025年01月16日Python中怎么使用tkFileDialog实现文件选择、保存和路径选择

这篇"Python中怎么使用tkFileDialog实现文件选择、保存和路径选择"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python中怎么使用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.colorchooser
tkCommonDialog --------------->tkinter.commondialog

其他的可以类推。

以上就是关于"Python中怎么使用tkFileDialog实现文件选择、保存和路径选择"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0