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

Python中獲取程序路徑的常用方法

 更新時(shí)間:2025年06月13日 08:26:05   作者:Bruce_xiaowei  
在Python開發(fā)中,經(jīng)常需要獲取當(dāng)前程序或腳本所在的路徑,以便進(jìn)行文件操作,資源加載等,下面我們就來看看幾種常用的方法并分析它們的區(qū)別吧

在Python開發(fā)中,經(jīng)常需要獲取當(dāng)前程序或腳本所在的路徑,以便進(jìn)行文件操作、資源加載等。本文將詳細(xì)介紹幾種獲取路徑的方法,分析它們的區(qū)別,并給出最佳實(shí)踐建議。

為什么需要獲取程序路徑

在以下場(chǎng)景中,獲取程序路徑尤為重要:

  • 讀取同目錄下的配置文件
  • 訪問程序所在目錄的子目錄中的資源
  • 程序所在目錄的子目錄中的資源
  • 構(gòu)建相對(duì)構(gòu)建相對(duì)路徑的文件操作
  • 路徑的文件操作
  • 打包成可執(zhí)行文件后仍能打包成可執(zhí)行文件后仍能正確找到資源

正確找到資源

獲取當(dāng)前腳本所在目錄獲取當(dāng)前腳本所在目錄

1. 使用__file__和os.path組合

import os

# 獲取當(dāng)前腳本所在目錄的絕對(duì)路徑
script_dir = os.path.dirname(os.path.abspath(__file__))
print(f"腳本所在目錄: {script_dir}")

原理說明:

  • __file__:Python內(nèi)置變量,表示當(dāng)前模塊的文件路徑
  • os.path.abspath():將相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑
  • os.path.dirname():獲取路徑的目錄部分

優(yōu)點(diǎn):

  • 最可靠的方法,能準(zhǔn)確獲取腳本所在位置
  • 在腳本被其他目錄導(dǎo)入時(shí)也能正常工作

2. 使用pathlib(Python 3.4+)

from pathlib import Path

script_dir = Path(__file__).resolve().parent
print(f"腳本所在目錄: {script_dir}")

優(yōu)點(diǎn):

  • 面向?qū)ο蟮穆窂讲僮鞣绞?/li>
  • 代碼更簡(jiǎn)潔易讀
  • 自動(dòng)處理不同操作系統(tǒng)的路徑分隔符

獲取當(dāng)前工作目錄

import os

current_dir = os.getcwd()
print(f"當(dāng)前工作目錄: {current_dir}")

注意:

  • 工作目錄是啟動(dòng)Python解釋器時(shí)的目錄
  • 可能和腳本所在目錄不同
  • 可以通過os.chdir()改變

路徑拼接的最佳實(shí)踐

在拼接路徑時(shí),應(yīng)避免直接使用字符串拼接(如path + '/'),而應(yīng)該使用專用方法:

使用os.path.join()

import os

config_path = os.path.join(script_dir, 'config', 'settings.ini')

使用pathlib的/操作符

from pathlib import Path

config_path = script_dir / 'config' / 'settings.ini'

優(yōu)點(diǎn):

  • 自動(dòng)處理不同操作系統(tǒng)的路徑分隔符
  • 代碼可讀性更高
  • 避免手動(dòng)拼接導(dǎo)致的錯(cuò)誤

不同場(chǎng)景下的選擇建議

場(chǎng)景推薦方法原因
需要腳本真實(shí)位置os.path.dirname(os.path.abspath(__file__)) 或 Path(__file__).resolve().parent最可靠
需要工作目錄os.getcwd()直接獲取
Python 3.4+項(xiàng)目pathlib更現(xiàn)代、更簡(jiǎn)潔
需要兼容舊版本os.path兼容性好

常見問題解答

Q:為什么不能直接用__不能直接用file?** A:?

A:__file__可能是相對(duì)路徑,使用abspath()或resolve()能確保得到絕對(duì)路徑。

Q:在交互式環(huán)境中如何獲取路徑?

A:交互式環(huán)境沒有__file__,可以使用os.getcwd()獲取當(dāng)前工作目錄。

Q:打包成exe后這些方法還能用嗎?

A:PyInstaller等工具會(huì)處理__file__,但可能需要特殊處理資源路徑,建議使用sys._MEIPASS(PyInstaller專用)。

總結(jié)

在Python中獲取路徑有多種方法,選擇合適的方法取決于具體需求:

需要腳本真實(shí)位置時(shí),使用__file__結(jié)合__結(jié)合os.path或.path或pathlib`

需要工作目錄時(shí),使用os.getcwd()

路徑拼接務(wù)必使用os.path.join()或pathlib的操作符

遵循這些最佳實(shí)踐,可以確保你的文件操作在不同平臺(tái)和環(huán)境下都能可靠工作。

到此這篇關(guān)于Python中獲取程序路徑的常用方法的文章就介紹到這了,更多相關(guān)Python獲取程序路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用pysmb庫(kù)訪問Windows共享文件夾的詳細(xì)教程

    Python使用pysmb庫(kù)訪問Windows共享文件夾的詳細(xì)教程

    本教程旨在幫助您使用pysmb庫(kù),通過SMB(Server Message Block)協(xié)議,輕松連接到Windows共享文件夾,并列舉其中的文件與文件夾,此外,我們還將簡(jiǎn)要介紹如何下載和上傳文件,以及如何處理可能遇到的連接錯(cuò)誤,需要的朋友可以參考下
    2024-12-12
  • python如何使用base加密解密

    python如何使用base加密解密

    base編碼是一種加密解密措施,目前常用的有base16、base32和base64,以base64為例,base64加密后共有64中字符,本文給大家分享python使用base加密解密的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Pycharm最常用的快捷鍵及使用技巧

    Pycharm最常用的快捷鍵及使用技巧

    這篇文章主要介紹了Pycharm常用的快捷鍵及使用技巧,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python下載微信公眾號(hào)相關(guān)文章

    python下載微信公眾號(hào)相關(guān)文章

    這篇文章主要為大家詳細(xì)介紹了python下載微信公眾號(hào)相關(guān)文章的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python疲勞駕駛困倦低頭檢測(cè)功能的實(shí)現(xiàn)

    python疲勞駕駛困倦低頭檢測(cè)功能的實(shí)現(xiàn)

    這篇文章主要介紹了python疲勞駕駛困倦低頭檢測(cè),該系統(tǒng)可以檢測(cè)一個(gè)人在開車時(shí)是否困倦,及時(shí)提醒,做到安全隱患排查,對(duì)實(shí)現(xiàn)代碼感興趣的朋友一起看看吧
    2022-04-04
  • python實(shí)現(xiàn)將代碼轉(zhuǎn)成不可反編譯的pyd文件

    python實(shí)現(xiàn)將代碼轉(zhuǎn)成不可反編譯的pyd文件

    pyc文件用于提高加載速度,部分源碼可讀,而pyd文件提供更好的保密性,是編譯后的二進(jìn)制動(dòng)態(tài)鏈接庫(kù),當(dāng)有些模塊的代碼需要一定的保密性,這個(gè)時(shí)候就需要考慮pyc和pyd文件了,本文給大家介紹了python實(shí)現(xiàn)將代碼轉(zhuǎn)成不可反編譯的pyd文件,需要的朋友可以參考下
    2024-11-11
  • Python sys模塊常用方法解析

    Python sys模塊常用方法解析

    這篇文章主要介紹了Python sys模塊常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python中的map、reduce和filter淺析

    Python中的map、reduce和filter淺析

    這篇文章主要介紹了Python中的map、reduce和filter,用實(shí)例來理解這3個(gè)函數(shù),需要的朋友可以參考下
    2014-04-04
  • 教你編譯pjsip源碼的方法

    教你編譯pjsip源碼的方法

    通過本文教大家如何編譯pjsip源碼,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-10-10
  • Python+Qt相片更換背景顏色窗體程序的步驟詳解

    Python+Qt相片更換背景顏色窗體程序的步驟詳解

    QT+Python是非常經(jīng)典的窗體編程組合,功能完善,可視化界面美觀易維護(hù),這篇博客針對(duì)相片更換背景顏色方面編寫代碼,代碼整潔,規(guī)則,易讀,對(duì)學(xué)習(xí)與使用Python有較好的幫助,需要的朋友可以參考下
    2022-12-12

最新評(píng)論