python sys.path[0] 的解釋


sys.path是python的搜索模塊的路徑集,返回的結果是一個list

path[0]

此列表的第一項,path[0],在程序啟動時初始化,是包含用來調用Python解釋器的腳本的目錄。如果腳本目錄不可用(例如,如果解釋器被交互式地調用,或者腳本是從標准輸入讀取的),path[0]是空字符串,它引導Python首先在當前目錄中搜索模塊。 
比如在C:User\chenxi3\Destop\Simplify中有一個testSysPath. py

import sys
print("\n".join(sys.path))

 

輸出是:

C:\Users\chenxi3\Desktop\Simplify 
C:\Python27\DLLs 
C:\Python27\lib 
C:\Python27\lib\plat-win 
C:\Python27\lib\lib-tk 
C:\Python27 
C:\Python27\lib\site-packages

 

 

path[0] 是C:\Users\chenxi3\Desktop\Simplify,調用python解釋器的腳本所在的目錄。 其實就是存放需要運行的代碼的路徑

什么是python解釋器?(下面是選取廖雪峰老師文章的總結)

當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。

由於整個Python語言從規范到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器。

常見的Python解釋器有: CPython IPython   PyPy  Jython   IronPython      

 

 

python中os.path.dirname(__file__)的使用
 (1).當"print os.path.dirname(__file__)"所在腳本是以完整路徑被運行的, 那么將輸出該腳本所在的完整路徑,比如:
      python c:/python27/test/test.py
      那么將輸出 c:/python27/test/
 (2).當"print os.path.dirname(__file__)"所在腳本是以相對路徑被運行的, 那么將輸出空目錄,比如:
     python test.py

     那么將輸出空字符串

以下代碼可以保證在任何時候都切換到當前執行腳本所在目錄中,該當當做公式熟記在心。

 

[python]  view plain  copy
 
      1. abspath = os.path.dirname(__file__)  
      2. sys.path.append(abspath)  
      3. print abspath  
      4. if abspath=='':  
      5.     os.chdir(sys.path[0])      
      6. else:  
      7.     os.chdir(abspath)    

 


免責聲明!

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



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