雷毅

导航

python文件选择:tkFileDialog 基础

tkFileDialog有两种形式: 

一个是.askopenfilename(option=value, ...) 这个是"打开"对话框

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

 

option参数如下:

defaultextension = s   默认文件的扩展名

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

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

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

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

title = T  弹出对话框的标题

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

 

 1 #coding=UTF-8
 2 # __author__ = '极致'
 3 
 4 import Tkinter, Tkconstants, tkFileDialog
 5 
 6 class TkFileDialogExample(Tkinter.Frame):
 7 
 8     def __init__(self, root):
 9 
10         Tkinter.Frame.__init__(self, root)
11 
12         # options for buttons
13         button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}
14 
15         # define buttons
16         Tkinter.Button(self, text='askopenfile', command=self.askopenfile).pack(**button_opt)
17         Tkinter.Button(self, text='askopenfilename', command=self.askopenfilename).pack(**button_opt)
18         Tkinter.Button(self, text='asksaveasfile', command=self.asksaveasfile).pack(**button_opt)
19         Tkinter.Button(self, text='asksaveasfilename', command=self.asksaveasfilename).pack(**button_opt)
20         Tkinter.Button(self, text='askdirectory', command=self.askdirectory).pack(**button_opt)
21 
22         # define options for opening or saving a file
23         self.file_opt = options = {}
24         options['defaultextension'] = '.txt'
25         options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]
26         options['initialdir'] = 'C:\\'
27         options['initialfile'] = 'myfile.txt'
28         options['parent'] = root
29         options['title'] = 'This is a title'
30 
31         # This is only available on the Macintosh, and only when Navigation Services are installed.
32         #options['message'] = 'message'
33 
34         # if you use the multiple file version of the module functions this option is set automatically.
35         #options['multiple'] = 1
36 
37         # defining options for opening a directory
38         self.dir_opt = options = {}
39         options['initialdir'] = 'C:\\'
40         options['mustexist'] = False
41         options['parent'] = root
42         options['title'] = 'This is a title'
43 
44     def askopenfile(self):
45 
46         """Returns an opened file in read mode."""
47 
48         return tkFileDialog.askopenfile(mode='r', **self.file_opt)
49 
50     def askopenfilename(self):
51 
52         """Returns an opened file in read mode.
53         This time the dialog just returns a filename and the file is opened by your own code.
54         """
55 
56         # get filename
57         filename = tkFileDialog.askopenfilename(**self.file_opt)
58 
59         # open file on your own
60         if filename:
61             return open(filename, 'r')
62 
63     def asksaveasfile(self):
64 
65         """Returns an opened file in write mode."""
66 
67         return tkFileDialog.asksaveasfile(mode='w', **self.file_opt)
68 
69     def asksaveasfilename(self):
70 
71         """Returns an opened file in write mode.
72         This time the dialog just returns a filename and the file is opened by your own code.
73         """
74 
75         # get filename
76         filename = tkFileDialog.asksaveasfilename(**self.file_opt)
77 
78         # open file on your own
79         if filename:
80             return open(filename, 'w')
81 
82     def askdirectory(self):
83 
84         """Returns a selected directoryname."""
85 
86         return tkFileDialog.askdirectory(**self.dir_opt)
87 
88 if __name__ == '__main__':
89     root = Tkinter.Tk()
90     TkFileDialogExample(root).pack()
91     root.mainloop()

 

posted on 2016-08-30 09:21  雷毅  阅读(1928)  评论(0编辑  收藏  举报