欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python獲取當(dāng)前文件和目錄路徑的方法詳解

 更新時(shí)間:2025年01月02日 10:10:27   作者:lishanlu136  
這篇文章主要介紹了Python中獲取當(dāng)前文件路徑和目錄的方法,包括使用__file__關(guān)鍵字、os.path.abspath、os.path.realpath以及sys.path,文中還介紹了在使用這些函數(shù)時(shí)需要注意的事項(xiàng),需要的朋友可以參考下

例子的目錄結(jié)構(gòu)如下:

當(dāng)前目錄為pythontest,目錄下有兩個(gè)文件夾1,2和兩個(gè)文件test.py,test1.ipynb,文件夾1下面有一個(gè)test1.txt,文件夾2下面的test2.txt是指向文件夾1下test1.txt的軟鏈接。 后面程序是寫(xiě)在test1.py文件中的

1、獲取當(dāng)前文件路徑

  • 通過(guò)python內(nèi)置關(guān)鍵字__file__獲取
import sys
import os

if __name__ == "__main__":
    print("__file__ :", __file__)
    print(os.path.abspath(__file__))
    print(os.path.realpath(__file__))

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

  • 通過(guò)執(zhí)行程序的命令第一個(gè)參數(shù)sys.argv[0]獲取
import sys
import os

if __name__ == "__main__":
    print("第一個(gè)參數(shù):", sys.argv[0])
    print(os.path.abspath(sys.argv[0]))
    print(os.path.realpath(sys.argv[0]))

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

2、獲取當(dāng)前文件所在目錄

可通過(guò)如下幾種方式獲取:

import sys
import os

if __name__ == "__main__":
    print(os.path.dirname(__file__))
    print(os.getcwd())
    print(os.path.abspath('.'))
    print(os.path.abspath(os.curdir))

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

3、os.path.abspath和os.path.realpath有什么區(qū)別?

對(duì)于普通文件,兩者沒(méi)什么區(qū)別,都是返回當(dāng)前文件的絕對(duì)路徑,如上面的test1.py;但是若文件是軟連接或者快捷方式時(shí),則os.path.realpath返回真實(shí)文件的路徑,如下面的例子,文件夾2下面的test2.txt是指向文件夾1下test1.txt的軟鏈接,兩個(gè)函數(shù)則返回不同的路徑。

import sys
import os

if __name__ == "__main__":
    print(os.path.abspath("/home/jovyan/project/pythontest/2/test2.txt"))
    print(os.path.realpath("/home/jovyan/project/pythontest/2/test2.txt"))

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

4、使用os.path.abspath和os.path.realpath需注意

使用這兩個(gè)函數(shù)時(shí)需注意路徑需要完整,不然會(huì)返回一個(gè)錯(cuò)誤的’絕對(duì)路徑’,如下,遍歷當(dāng)前目錄下所有文件:

import sys
import os

if __name__ == "__main__":
    for i in os.listdir(os.path.dirname(__file__)):
        print("1級(jí)目錄:", i)
        if os.path.isdir(os.path.join(os.path.dirname(__file__), i)):
            for j in os.listdir(os.path.join(os.path.dirname(__file__), i)):
                print("2級(jí)目錄:", j)
                print(os.path.abspath(j))      # 這里j不是一個(gè)完整路徑,只是一個(gè)文件名,結(jié)果會(huì)返回一個(gè)錯(cuò)誤的'絕對(duì)路徑'
                print(os.path.realpath(j))
                print(os.path.abspath(os.path.join(os.path.dirname(__file__), i, j)))
                print(os.path.realpath(os.path.join(os.path.dirname(__file__), i, j)))

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

5、關(guān)于sys.path

sys.path返回一個(gè)list,python中對(duì)list的操作均可以對(duì)sys.path操作,常見(jiàn)有insert, append這些。

import sys
import os

if __name__ == "__main__":
    print("==> before:")
    print(sys.path)
    sys.path.insert(0, os.path.dirname(__file__))   #將當(dāng)前文件目錄插入在path搜索路徑的第一個(gè)位置
    sys.path.append(os.path.dirname(__file__))  #將當(dāng)前文件目錄添加在path搜索路徑的最后
    print("==> after:")
    print(sys.path)

進(jìn)入pythontest目錄下,終端運(yùn)行命令python test1.py,輸出結(jié)果:

總結(jié) 

到此這篇關(guān)于python獲取當(dāng)前文件和目錄路徑的文章就介紹到這了,更多相關(guān)python獲取當(dāng)前文件和目錄路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python多進(jìn)程分塊讀取超大文件的方法

    Python多進(jìn)程分塊讀取超大文件的方法

    這篇文章主要介紹了Python多進(jìn)程分塊讀取超大文件的方法,涉及Python多進(jìn)程操作與文件分塊讀取的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • python如何隨機(jī)生成高強(qiáng)度密碼

    python如何隨機(jī)生成高強(qiáng)度密碼

    這篇文章主要為大家詳細(xì)介紹了python隨機(jī)生成高強(qiáng)度密碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍

    Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍

    這篇文章主要介紹了Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python獲取微信小程序手機(jī)號(hào)并綁定遇到的坑

    python獲取微信小程序手機(jī)號(hào)并綁定遇到的坑

    這篇文章主要介紹了python獲取微信小程序手機(jī)號(hào)并綁定遇到的坑,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-11-11
  • python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    使用Python腳本實(shí)現(xiàn)AAC格式轉(zhuǎn)MP3格式的方法介紹,需要用戶(hù)輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過(guò)調(diào)用FFmpeg工具實(shí)現(xiàn)格式轉(zhuǎn)換,該腳本簡(jiǎn)單易懂,適合需要批量處理音頻文件的用戶(hù),使用前需確保已安裝FFmpeg環(huán)境
    2024-11-11
  • Python之Matplotlib文字與注釋的使用方法

    Python之Matplotlib文字與注釋的使用方法

    這篇文章主要介紹了Python之Matplotlib文字與注釋的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 淺談python的輸入輸出,注釋?zhuān)緮?shù)據(jù)類(lèi)型

    淺談python的輸入輸出,注釋?zhuān)緮?shù)據(jù)類(lèi)型

    這篇文章主要介紹了python的輸入輸出,注釋?zhuān)緮?shù)據(jù)類(lèi)型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python中的異常處理:try?except?Exception?as?e解決辦法

    Python中的異常處理:try?except?Exception?as?e解決辦法

    這篇文章主要介紹了Python中的異常處理機(jī)制,包括try、except、finally語(yǔ)句的基本用法和高級(jí)用法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Python實(shí)現(xiàn)輕松找出兩個(gè)列表不同之處

    Python實(shí)現(xiàn)輕松找出兩個(gè)列表不同之處

    在日常編程中,需要比較兩個(gè)列表并找出它們之間差異是一種常見(jiàn)需求,在本文中,我們將深入探討Python中查找兩個(gè)列表差異值的方法,需要的小伙伴可以參考下
    2023-12-12
  • pycharm自定義TODO類(lèi)注釋以及高亮顏色的設(shè)置方法

    pycharm自定義TODO類(lèi)注釋以及高亮顏色的設(shè)置方法

    這篇文章主要介紹了pycharm自定義TODO類(lèi)注釋以及高亮顏色的設(shè)置方法,文中通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03

最新評(píng)論