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
那么將輸出空字符串
以下代碼可以保證在任何時候都切換到當前執行腳本所在目錄中,該當當做公式熟記在心。
- abspath = os.path.dirname(__file__)
- sys.path.append(abspath)
- print abspath
- if abspath=='':
- os.chdir(sys.path[0])
- else:
- os.chdir(abspath)