Python中的打開文件對話框


1、最早學習Tkinter的時候,在《Tkinter編程代碼實例》中看到的“打開文件對話框”需要用到FileDialog模塊,代碼非常簡單:

from  Tkinter import  *
from  FileDialog import  *
 
root =  Tk()
 
fd =  LoadFileDialog(root) # 創建打開文件對話框
filename =  fd.go() # 顯示打開文件對話框,並獲取選擇的文件名稱
print  filename
 
root.mainloop()

但是界面效果比較簡陋(不是本地風格),而且遇到中文名稱也會顯示為亂碼。所以FileDialog.LoadFileDialog用於快速原型驗證倒是不錯,要拼湊一個稍微上得了台面的界面還是差了點:

2、然后因為使用Python操作過Excel的緣故,接觸了PyWin32擴展庫,在該庫的win32ui模塊中,提供了一個CreateFileDialog方法可以用於創建打開文件對話框,創建代碼也非常簡單:

import  win32ui
 
dlg =  win32ui.CreateFileDialog( 1 ) # 1表示打開文件對話框
dlg.SetOFNInitialDir( 'E:/Python' ) # 設置打開文件對話框中的初始顯示目錄
dlg.DoModal()
 
filename =  dlg.GetPathName() # 獲取選擇的文件名稱
print  filename

這個打開文件對話框的界面比較友好,是Windows本地風格的,中文顯示也正常,但缺點是只能在Windows上有效:

3、其實剛開始使用win32ui.CreateFileDialog時,還不會用SetOFNInitialDir設置打開文件對話框的初始顯示目錄,后來遇到了需要設置的情況,因此上網查了下方法,一不小心來到了一個叫做nullege的網站,在上面找到了這個設置方法;同時,還意外地發現了原來還有一個tkFileDialog的模塊,也提供了大量操作文件對話框的方法,使用tkFileDialog.askopenfilename()即可輕松實現我的需求,代碼異常簡單:

import  tkFileDialog
 
filename =  tkFileDialog.askopenfilename(initialdir =  'E:/Python' )
print  filename

界面也是友好的本地風格,與使用win32ui.CreateFileDialog類似,但是優點是tkFileDialog是跨平台的:

當然Python的界面庫豐富多樣,WxPython、PyQt等等都很棒,它們提供的打開文件對話框的方法自然也是非常好用的。使用Python的程序員們很幸運,因為我們的選擇還是有很多的。

話又說回來,nullege是個很不錯的網站,它上面提供了大量有關Python的文檔和示例,也推薦給大家!

轉自:https://www.cnblogs.com/russellluo/archive/2011/10/24/2223216.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM