2016-05-13 68 views
1

基本上,當我的程序運行時,我希望它能夠提供一個文件瀏覽器,我可以選擇一個將作爲模塊導入的python程序。這是我到目前爲止:如何在文件瀏覽器中使用動態模塊?

from tkinter import Tk 
from tkinter.filedialog import askopenfilename 

Tk().withdraw() 

x = askopenfilename() 

print(x) 

#g = __import__(x) 

問題是這抓住了文件的整個路徑,而不僅僅是文件名。即使它確實抓住了文件名,我也不得不從最後刪除.py。

所以基本上我的問題是,有沒有一種更簡單的方法來實現我想要的?如果沒有,那麼我該如何去除所有的路徑信息和文件擴展名,以便僅留下模塊名稱?

要增加一點環境,這個程序最終會做什麼是我們用電錶測量電壓,但我希望它可以互換使用什麼儀表。由於每臺儀表的通信方式都不同,我想將每臺儀表的所有命令寫入自己的文件中,並選擇每次運行時要使用的儀表。不,我不想輸入模塊的名稱,我希望能夠瀏覽它。

回答

3

os.path包括您需要的一切。

from tkinter import Tk 
from tkinter.filedialog import askopenfilename 
from os.path import basename, splitext 

Tk().withdraw() 

path = askopenfilename() 
file = basename(path) 
(filename, fileextension) = splitext(file) 

print(filename) 
+0

廢話。在你的2分鐘後發佈我的。猜你這次打敗了我。 –

+0

這簡直太美了:)非常感謝你,像一個魅力工作! –

相關問題