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

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的軟鏈接。 后面程序是寫在test1.py文件中的

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

  • 通過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é)果:

  • 通過執(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)前文件所在目錄

可通過如下幾種方式獲?。?/p>

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ū)別?

對于普通文件,兩者沒什么區(qū)別,都是返回當(dāng)前文件的絕對路徑,如上面的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ò)誤的’絕對路徑’,如下,遍歷當(dāng)前目錄下所有文件:

import sys
import os

if __name__ == "__main__":
    for i in os.listdir(os.path.dirname(__file__)):
        print("1級目錄:", 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)
                print(os.path.abspath(j))      # 這里j不是一個(gè)完整路徑,只是一個(gè)文件名,結(jié)果會(huì)返回一個(gè)錯(cuò)誤的'絕對路徑'
                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中對list的操作均可以對sys.path操作,常見有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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基礎(chǔ)語法之變量與數(shù)據(jù)類型詳解

    Python基礎(chǔ)語法之變量與數(shù)據(jù)類型詳解

    這篇文章主要為大家詳細(xì)介紹了Python基礎(chǔ)語法中變量與數(shù)據(jù)類型的用法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下
    2022-07-07
  • Django錯(cuò)誤:TypeError at / ''bool'' object is not callable解決

    Django錯(cuò)誤:TypeError at / ''bool'' object is not callable解決

    這篇文章主要介紹了Django 錯(cuò)誤:TypeError at / 'bool' object is not callable解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 數(shù)據(jù)清洗--DataFrame中的空值處理方法

    數(shù)據(jù)清洗--DataFrame中的空值處理方法

    今天小編就為大家分享一篇數(shù)據(jù)清洗--DataFrame中的空值處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 在Python IDLE 下調(diào)用anaconda中的庫教程

    在Python IDLE 下調(diào)用anaconda中的庫教程

    這篇文章主要介紹了在Python IDLE 下調(diào)用anaconda中的庫教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python 批量讀取文件中指定字符的實(shí)現(xiàn)

    Python 批量讀取文件中指定字符的實(shí)現(xiàn)

    這篇文章主要介紹了Python 批量讀取文件中指定字符的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 詳解OpenCV圖像的概念和基本操作

    詳解OpenCV圖像的概念和基本操作

    opencv最主要的的功能是用于圖像處理,所以圖像的概念貫穿了整個(gè)opencv,與其相關(guān)的核心類就是Mat。這篇文章主要介紹了OpenCV圖像的概念和基本操作,需要的朋友可以參考下
    2021-10-10
  • Java爬蟲技術(shù)框架之Heritrix框架詳解

    Java爬蟲技術(shù)框架之Heritrix框架詳解

    這篇文章主要介紹了爬蟲技術(shù)框架之Heritrix框架詳解,文中通過示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python如何基于Tesseract實(shí)現(xiàn)識(shí)別文字功能

    Python如何基于Tesseract實(shí)現(xiàn)識(shí)別文字功能

    這篇文章主要介紹了Python如何基于Tesseract實(shí)現(xiàn)識(shí)別文字功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在Django同1個(gè)頁面中的多表單處理詳解

    在Django同1個(gè)頁面中的多表單處理詳解

    這篇文章主要給大家介紹了在Django同1個(gè)頁面中的多表單處理的相關(guān)資料,文章先給大家介紹了如何快速上手Django實(shí)現(xiàn)項(xiàng)目的方法,方便讓大家理解和學(xué)習(xí),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • python奇偶行分開存儲(chǔ)實(shí)現(xiàn)代碼

    python奇偶行分開存儲(chǔ)實(shí)現(xiàn)代碼

    這篇文章主要介紹了python讀取文件,偶數(shù)行輸出一個(gè)文件,奇數(shù)行輸出一個(gè)文件,需要的朋友可以參考下
    2018-03-03

最新評論

新野县| 民和| 宝鸡市| 房山区| 资阳市| 静宁县| 蓝田县| 共和县| 章丘市| 开江县| 墨玉县| 奇台县| 丘北县| 临汾市| 饶阳县| 静海县| 会泽县| 乐平市| 松桃| 乐昌市| 双鸭山市| 赣州市| 海兴县| 康平县| 黄龙县| 长垣县| 曲阳县| 平果县| 阳高县| 冷水江市| 大安市| 秦安县| 连云港市| 湟源县| 芦溪县| 犍为县| 常州市| 禹城市| 滦平县| 抚顺市| 汤原县|