Re: [問題] import的問題,不應該是問題的問題

看板Python作者 (Victor)時間17年前 (2008/04/22 15:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《Lucemia (生の直感、死の予感)》之銘言: : 借這個標題一問 : 如果我要將一個資料夾下所有定義的類別(分散在各檔案中) : 全部再程式中import進來並列出 : 有什麼好方法嗎? : 現在試過的方式有這些: : 1. import 資料夾名後 使用dir : : 但只會產生 __buildins__, __doc__ .. 不會將其下的檔案列出 : 2. 使用listdir將資料夾下的檔案列出後一一execfile: : import 路徑不同會產生 這些檔案找不到需要import 的其他檔案 : 3. 使用listdir列出後 在使用 __import__的方式一一載入: : 目前唯一可行的方式.. def LoadWidgets(self): """Import widgets form file""" import sys, os try: import os import dircache import blockarticle WidgetPath = os.path.split(blockarticle.__file__)[0] DirList = dircache.listdir(WidgetPath + '/widgets') for FileName in DirList: #exec 'import %s' % Module Name, Suffix = FileName.split('.') if Name != '__init__' and Suffix == 'py': #print 'blockarticle.widgets.' + Name BlockArticle = __import__('blockarticle.widgets.' + Name) Widgets = getattr(BlockArticle, 'widgets') self.ModuleList[Name] = getattr(Widgets, Name) 我在我BlockArticle就是用第三種方法寫的 這樣做是要讓Widget可以放在某個資料夾 程式會自己去讀,要擴充就很方便,不用設定 直接丟進去就ok了 參考看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.0.222

04/23 10:12, , 1F
感謝.. 我要做的就是這樣子
04/23 10:12, 1F
文章代碼(AID): #183OwuVS (Python)
文章代碼(AID): #183OwuVS (Python)