option參數如下:? defaultextension = s 默認文件的擴展名? filetypes = [(label1, pattern1), (label2, pattern2), …] 設置文件類型下拉菜單里的的選項? initialdir = D 對話框中默認的路徑? initialfile = F 對話框中初始化顯示的文件名? parent = W 父對話框(由哪個窗口彈出就在哪個上端)? title = T 彈出對話框的標題? 如果選中文件的話,確認后會顯示文件的完整路徑,否則單擊取消的話會返回空字符串? [python] view plain copy
#coding=UTF-8
# __author__ = '極致' 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()