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

使用Python實現(xiàn)獲取當(dāng)前腳本目錄路徑

 更新時間:2025年11月23日 10:39:16   作者:Redmi人兒  
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)獲取當(dāng)前腳本目錄的絕對路徑,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

這段Python代碼的作用是獲取當(dāng)前Python腳本文件所在目錄的絕對路徑

讓我詳細解釋一下:

代碼分解

current_dir = os.path.dirname(os.path.abspath(__file__))
  • __file__ - 當(dāng)前執(zhí)行腳本的文件名(包含路徑)
  • os.path.abspath(__file__) - 將相對路徑轉(zhuǎn)換為絕對路徑
  • os.path.dirname() - 獲取路徑的目錄部分(去掉文件名)
  • current_dir - 最終得到當(dāng)前腳本所在的目錄絕對路徑

示例說明

假設(shè)你的腳本位于:/home/user/projects/my_script.py

import os

print(__file__)  # 可能是: "my_script.py" 或 "./my_script.py"
print(os.path.abspath(__file__))  # "/home/user/projects/my_script.py"
print(os.path.dirname(os.path.abspath(__file__)))  # "/home/user/projects"

類似的特殊變量(魔術(shù)變量)

除了 __file__,Python還有以下常見的特殊變量:

變量名說明
__name__當(dāng)前模塊名,如果是主程序則為 "__main__"
__doc__模塊的文檔字符串
__package__包名
__spec__模塊規(guī)范
__annotations__變量注解
__dict__模塊或?qū)ο蟮膶傩宰值?/td>
__class__實例所屬的類
__module__類定義的模塊名

實際應(yīng)用場景

import os

# 獲取當(dāng)前腳本所在目錄
current_dir = os.path.dirname(os.path.abspath(__file__))

# 基于當(dāng)前目錄構(gòu)建其他路徑
config_path = os.path.join(current_dir, "config.json")
data_dir = os.path.join(current_dir, "data")

# 這樣無論腳本在哪里被執(zhí)行,都能正確找到相關(guān)文件
with open(config_path, 'r') as f:
    config = json.load(f)

這種寫法特別有用,因為它不依賴于當(dāng)前工作目錄,無論從哪里調(diào)用腳本,都能準確定位到腳本文件所在的位置。

知識擴展

python這樣代碼是什么用current_dir = os.path.dirname(os.path.abspath(file))

另外__file__是什么意思?除了__file__還有哪些其他類似的宏嗎?

這段代碼的作用是獲取當(dāng)前Python腳本文件所在目錄的絕對路徑。

具體分解:

__file__ 是當(dāng)前執(zhí)行腳本的相對路徑(注意:在某些交互式環(huán)境中可能沒有定義)。

例如,如果腳本位于 “/home/user/example.py”,那么在該腳本中打印 file 可能會得到 “example.py”(相對路徑)或絕對路徑,這取決于如何運行腳本。
但是,當(dāng)使用相對路徑運行腳本時,file 是相對路徑,所以我們需要用 os.path.abspath 來將其轉(zhuǎn)換為絕對路徑。

os.path.abspath(file) 將 file 轉(zhuǎn)換為絕對路徑。這確保了無論當(dāng)前工作目錄是什么,我們都能得到腳本的完整路徑。

os.path.dirname(path) 返回路徑 path 的目錄名。即去掉路徑的最后一部分(通常是文件名),返回所在目錄。

因此,current_dir = os.path.dirname(os.path.abspath(file)) 就得到了當(dāng)前腳本所在目錄的絕對路徑。

舉個例子:

假設(shè)腳本路徑為 “/home/user/scripts/example.py”,那么:

file 可能是 “example.py” 或 “./example.py” 或絕對路徑,但通常我們使用相對路徑執(zhí)行時是相對路徑。

os.path.abspath(file) 將得到 “/home/user/scripts/example.py”(絕對路徑)。

os.path.dirname(“/home/user/scripts/example.py”) 將得到 “/home/user/scripts”。

這樣,current_dir 就被賦值為 “/home/user/scripts”。

關(guān)于 file 的補充:

在Python中,以雙下劃線開頭和結(jié)尾的變量通常被稱為“魔術(shù)變量”,它們由Python解釋器定義。

file 就是其中一個,它表示當(dāng)前模塊(腳本)的文件路徑。

除了 file,還有其他類似的魔術(shù)變量,例如:

  • name:當(dāng)前模塊的名稱。如果當(dāng)前模塊是主程序,則 name 的值為 ‘main’,否則為模塊名。
  • doc:模塊的文檔字符串,如果模塊開頭有字符串,則為該字符串,否則為None。
  • package:當(dāng)前模塊所在的包名。
  • loader:加載該模塊的加載器對象。
  • spec:模塊的規(guī)范,包含關(guān)于模塊的導(dǎo)入信息。
  • cached:編譯后的模塊緩存文件路徑。
  • builtins:內(nèi)建函數(shù)和異常的集合。

此外,在類中還有:

  • class:當(dāng)前實例對應(yīng)的類。
  • module:當(dāng)前實例所屬的模塊名。
  • dict:對象的屬性字典。

在函數(shù)中:

  • defaults:函數(shù)的默認參數(shù)元組。
  • code:函數(shù)的代碼對象。

等等。

這些魔術(shù)變量在Python中提供了關(guān)于當(dāng)前環(huán)境、對象、函數(shù)等的信息。

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

相關(guān)文章

  • 簡單了解Python write writelines區(qū)別

    簡單了解Python write writelines區(qū)別

    這篇文章主要介紹了簡單了解Python write writelines區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Python中的字典及其使用方法

    Python中的字典及其使用方法

    這篇文章主要介紹了Python中的字典及其使用方法,包括使用字典(添加、刪除、修改等操作)、遍歷字典以及字典與列表之間的嵌套使用具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • Python利用ORM控制MongoDB(MongoEngine)的步驟全紀錄

    Python利用ORM控制MongoDB(MongoEngine)的步驟全紀錄

    MongoEngine是一個對象文檔映射器(ODM),相當(dāng)于一個基于SQL的對象關(guān)系映射器(ORM),下面這篇文章主要給大家介紹了關(guān)于Python利用ORM控制MongoDB(MongoEngine)的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • django 控制頁面跳轉(zhuǎn)的例子

    django 控制頁面跳轉(zhuǎn)的例子

    今天小編就為大家分享一篇django 控制頁面跳轉(zhuǎn)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例

    Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法,涉及Python同時進行SQLServer與MongoDB數(shù)據(jù)庫的連接、查詢、讀取、寫入等相關(guān)操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-06-06
  • python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法

    python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法

    今天小編就為大家分享一篇python pandas實現(xiàn)excel轉(zhuǎn)為html格式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python?FastMCP構(gòu)建MCP服務(wù)端與客戶端的詳細步驟

    Python?FastMCP構(gòu)建MCP服務(wù)端與客戶端的詳細步驟

    MCP(Multi-Client?Protocol)是一種用于構(gòu)建可擴展服務(wù)的通信協(xié)議框架,本文將使用FastMCP搭建一個支持?Streamable?HTTP?傳輸協(xié)議的?MCP?服務(wù)端與客戶端,需要的可以了解下
    2025-06-06
  • python列表數(shù)據(jù)增加和刪除的具體實例

    python列表數(shù)據(jù)增加和刪除的具體實例

    在本篇文章里小編給大家整理的是一篇關(guān)于python列表數(shù)據(jù)增加和刪除的具體實例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-05-05
  • Python實現(xiàn)的txt文件去重功能示例

    Python實現(xiàn)的txt文件去重功能示例

    這篇文章主要介紹了Python實現(xiàn)的txt文件去重功能,涉及Python針對txt文本文件的讀寫、字符串遍歷、判斷相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Django REST framework 視圖和路由詳解

    Django REST framework 視圖和路由詳解

    這篇文章主要介紹了Django REST framework 視圖和路由詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論

临沂市| 木兰县| 东台市| 息烽县| 蒲江县| 南川市| 淄博市| 常山县| 垫江县| 微博| 罗甸县| 开封县| 广宗县| 昌图县| 临武县| 江门市| 太保市| 青冈县| 葫芦岛市| 思茅市| 宜兰市| 莱西市| 黄山市| 永泰县| 和林格尔县| 太仆寺旗| 乌拉特前旗| 潞西市| 长葛市| 凌海市| 南丹县| 隆昌县| 白山市| 新田县| 绥滨县| 酒泉市| 东莞市| 旌德县| 黄冈市| 八宿县| 巴楚县|