python 載入外部檔案

來源:互聯網
上載者:User

標籤:

import sysimport osdef pySource(filePath):    myFile=os.path.basename(filePath)    dir=os.path.dirname(filePath)    fileName=os.path.splitext(myFile)[0]       if(os.path.exists(dir)):        paths=sys.path        pathfound=0        for path in paths:            if(dir==path):                pathfound=1        if not pathfound:            sys.path.append(dir)      exec(‘import ‘+fileName) in globals()    exec(‘reload(‘+fileName+‘)‘) in globals()    return fileNamepySource(‘C:/Users/XS/Documents/maya/2012/zh_CN/prefs/scriptEditorTemp/myPY.py‘)

 

import sysimport osdef pySource(filePath):#去掉檔案目錄路徑,返迴文件名,含檔案尾碼    myFile = os.path.basename(filePath)#去掉檔案名稱,返回目錄路徑    dir = os.path.dirname(filePath)#將檔案名稱和擴充尾碼名分離後取檔案名稱    fileName = os.path.splitext(myFile)[0]#上面步驟中,編輯器僅根據提供的路徑和檔案名稱進行分類,並沒有檢測實際是否存在#檢查路徑是否存在,如果存在則進入下一步    if( os.path.exists( dir ) ):#sys.path是maya啟動後載入python相關模組的地址集合        paths = sys.path        pathfound = 0#遍曆paths這個地址集合中的名稱,如果有和提供的檔案路徑相同的地址,除了變數pathfound的值更改為1,不執行其他動作        for path in paths:            if(dir == path):                pathfound = 1#如果路徑不是地址集合中的地址,則將其加入(這是考慮多次啟動指令碼的情況)        if not pathfound:            sys.path.append( dir )#以上的語句,將外部的python檔案作為一個模組載入到了當前的進程中,可進行即時調用#注意:這是個動態載入,使用者的外部檔案會在下一次python重啟動時從進程中消失#exec方法用於執行儲存在字串或者檔案中的python語句,類似MEL中的eval函數#不過這裡需要添加in  globals(),因為我們要在整個全域變數中執行我們的外部指令碼    exec(‘import ‘ +fileName) in globals()#因為是後匯入的模組,因此需要重載檔案來確保資料的更新    exec( ‘reload( ‘ + fileName + ‘ )‘ ) in globals()#返回輸入檔案的命名空間    return fileName# 輸入一個檔案需要提供完整路徑--勿用中文路徑#注意python中路徑是用斜杠【/】,而不是windows中檔案夾路徑的反斜線【\】#如果是MacOS系統,由於不存在windows的分區概念,路徑通常為:/Users/...pySource( ‘c:/Users /myPY.py‘ )

python 載入外部檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.