最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python獲取腳本所在目錄的正確方法

 更新時(shí)間:2014年04月15日 11:54:03   作者:  
這篇文章主要介紹了Python獲取腳本所在目錄的正確方法,需要的朋友可以參考下

1.以前的方法

如果是要獲得程序運(yùn)行的當(dāng)前目錄所在位置,那么可以使用os模塊的os.getcwd()函數(shù)。

如果是要獲得當(dāng)前執(zhí)行的腳本的所在目錄位置,那么需要使用sys模塊的sys.path[0]變量或者sys.argv[0]來獲得。實(shí)際上sys.path是Python會(huì)去尋找模塊的搜索路徑列表,sys.path[0]和sys.argv[0]是一回事因?yàn)镻ython會(huì)自動(dòng)把sys.argv[0]加入sys.path。

具體來說,如果你在C:\test目錄下執(zhí)行python getpath\getpath.py,那么os.getcwd()會(huì)輸出“C:\test”,sys.path[0]會(huì)輸出“C:\test\getpath”。

更特別地,如果你用py2exe模塊把Python腳本編譯為可執(zhí)行文件,那么sys.path[0]的輸出還會(huì)變化:
如果把依賴庫(kù)用默認(rèn)的方式打包為zip文件,那么sys.path[0]會(huì)輸出“C:\test\getpath\libarary.zip”;
如果在setup.py里面指定zipfile=None參數(shù),依賴庫(kù)就會(huì)被打包到exe文件里面,那么sys.path[0]會(huì)輸出“C:\test\getpath\getpath.exe”。

2.正確的方法

但以上這些其實(shí)都不是腳本文件所在目錄的位置。
比如C:\test目錄下還有一個(gè)名為sub的目錄;C:\test目錄下有g(shù)etpath.py,sub目錄下有 sub_path.py,getpath.py調(diào)用sub_path.py;我們?cè)贑:\test下執(zhí)行g(shù)etpath.py。如果我們?cè)?sub_path.py里面使用sys.path[0],那么其實(shí)得到的是getpath.py所在的目錄路徑“C:\test”,因?yàn)镻ython虛擬 機(jī)是從getpath.py開始執(zhí)行的。如果想得到sub_path.py的路徑,那么得這樣:
os.path.split(os.path.realpath(__file__))[0]

其中__file__雖然是所在.py文件的完整路徑,但是這個(gè)變量有時(shí)候返回相對(duì)路徑,有時(shí)候返回絕對(duì)路徑,因此 還要用os.path.realpath()函數(shù)來處理一下。也即在這個(gè)例子里,os.path.realpath(__file__)輸出是 “C:\test\sub\sub_path.py”,而os.path.split(os.path.realpath(__file__))[0]輸 出才是“C:\test\sub”。

3.實(shí)例說明

總之,舉例來講,os.getcwd()、sys.path[0] (sys.argv[0])和__file__的區(qū)別是這樣的:
假設(shè)目錄結(jié)構(gòu)是:

復(fù)制代碼 代碼如下:

C:test

  [dir] getpath

    [file] path.py
    [dir] sub

      [file] sub_path.py


然后我們?cè)贑:\test下面執(zhí)行python getpath/path.py,這時(shí)sub_path.py里面與各種用法對(duì)應(yīng)的值其實(shí)是:
os.getcwd() “C:\test”,取的是起始執(zhí)行目錄
sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始執(zhí)行的腳本的所在目錄
os.path.split(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是__file__所在文件sub_path.py的所在目錄

相關(guān)文章

  • 終止python代碼運(yùn)行的3種方式詳析

    終止python代碼運(yùn)行的3種方式詳析

    這篇文章主要給大家介紹了關(guān)于終止python代碼運(yùn)行的3種方式,python是解釋運(yùn)行的程序,程序進(jìn)入死循環(huán)或者其它異常都會(huì)導(dǎo)致程序無法正常結(jié)束,需要的朋友可以參考下
    2023-07-07
  • Python enumerate索引迭代代碼解析

    Python enumerate索引迭代代碼解析

    這篇文章主要介紹了Python enumerate索引迭代代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • windows下python和pip安裝教程

    windows下python和pip安裝教程

    這篇文章主要為大家詳細(xì)介紹了windows下Python和pip安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python實(shí)例方法、類方法、靜態(tài)方法區(qū)別詳解

    Python實(shí)例方法、類方法、靜態(tài)方法區(qū)別詳解

    這篇文章主要介紹了Python實(shí)例方法、類方法、靜態(tài)方法區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Pandas的AB BA類型數(shù)據(jù)框去重復(fù)

    Pandas的AB BA類型數(shù)據(jù)框去重復(fù)

    這篇文章主要為大家介紹了Pandas的AB BA類型數(shù)據(jù)框去重復(fù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • python 實(shí)現(xiàn)A*算法的示例代碼

    python 實(shí)現(xiàn)A*算法的示例代碼

    本篇文章主要介紹了python 實(shí)現(xiàn)A*算法的示例代碼,A*作為最常用的路徑搜索算法,值得我們?nèi)ド羁痰难芯浚哂幸欢ǖ膮⒖純r(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python自動(dòng)化完成tb喵幣任務(wù)的操作方法

    Python自動(dòng)化完成tb喵幣任務(wù)的操作方法

    2019雙十一,tb推出了新的活動(dòng),商店喵幣,看了一下每天都有幾個(gè)任務(wù)來領(lǐng)取喵幣,從而升級(jí)店鋪賺錢,然而我既想賺紅包又不想干苦力,遂使用python來進(jìn)行手機(jī)自動(dòng)化操作,需要的朋友跟隨小編一起看看吧
    2019-10-10
  • python的reverse函數(shù)翻轉(zhuǎn)結(jié)果為None的問題

    python的reverse函數(shù)翻轉(zhuǎn)結(jié)果為None的問題

    這篇文章主要介紹了python的reverse函數(shù)翻轉(zhuǎn)結(jié)果為None的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python3 常見解密加密算法實(shí)例分析【base64、MD5等】

    python3 常見解密加密算法實(shí)例分析【base64、MD5等】

    這篇文章主要介紹了python3 常見解密加密算法,結(jié)合實(shí)例形式分析了Python的base64模塊加密,以及基于pycrypto模塊的MD5加密等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Django實(shí)現(xiàn)發(fā)送郵件功能

    Django實(shí)現(xiàn)發(fā)送郵件功能

    這篇文章主要介紹了Django實(shí)現(xiàn)發(fā)送郵件功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

泊头市| 平乐县| 灵川县| 清徐县| 安塞县| 岢岚县| 翼城县| 丹阳市| 西畴县| 上杭县| 三亚市| 锦屏县| 抚顺县| 台安县| 蒙城县| 韶山市| 泗水县| 谷城县| 响水县| 天长市| 云和县| 抚顺县| 柯坪县| 樟树市| 庆安县| 临泽县| 新密市| 南汇区| 腾冲县| 南康市| 嘉义市| 淮北市| 陆川县| 车险| 寿光市| 寿阳县| 白银市| 武汉市| 神木县| 鹤峰县| 普安县|