Python 獲取當前指令碼路徑的姿勢對比

2021-08-07 16:11:00 字數 1552 閱讀 2154

下午博主更新了一篇講述獲取當前專案路徑的博文,然後得到了悠悠校長的指點,又了解了一種新的使用方式,然後自己也去研究了一下這兩種方式的不同之處。

博主目前用的是python的os.getcwd()方法,校長給出的是os.path.dirname(os.path.realpath(__file__))

這兩種方式到底有什麼本質區別,博主通過具體的實驗來進行解釋。

先給出目錄的結構:

pycharmprojects/dir/dir2/getrootpath.py

pycharmprojects/getpath.py

以下**是getrootpath.py

import os

def getcurpath1():

cur_path = os.path.dirname(os.path.realpath(__file__))

return cur_path

def getcurpath2():

cur_path = os.getcwd()

return cur_path

print('func1----'+getcurpath1())

print('func2----'+getcurpath2())

我們直接執行該指令碼得到的結果如下:

func1----c:\users\administrator\pycharmprojects\pythonlearn\dir\dir2

func2----c:\users\administrator\pycharmprojects\pythonlearn\dir\dir2

並未看出本質區別,獲取的都是當前指令碼所在的dir2目錄

以下**是getpath.py的,裡面我們引入了dir2目錄下的getrootpath.py模組

from dir.dir2 import getrootpath

path1 = getrootpath.getcurpath1()

path2 = getrootpath.getcurpath2()

直接執行getpath.py檔案獲取的結果如下:

func1----c:\users\administrator\pycharmprojects\pythonlearn\dir\dir2

func2----c:\users\administrator\pycharmprojects\pythonlearn

出現了不同,這裡func1也就是os.path.dirname(os.path.realname(__file__))獲取的__file__所在指令碼的路徑,也就是getrootpath.py的路徑

而os.getcwd()獲取的當前最外層呼叫的指令碼路徑即getpath所在的目錄也可描述為起始的執行目錄,a呼叫b,起始的是a,那麼獲取的就是a所在的目錄路徑。

方法補充說明:

os.path.dirname():去掉指令碼的檔名,返回目錄

os.path.dirname(os,path.realname(__file__)):獲得模組所在的絕對路徑,__file__內建屬性。

獲取當前指令碼目錄路徑

for name in os.listdir if name self.cookie file os.remove str self.cookie file windows獲取當前路徑 相對路徑 以當前根目錄為基準 最近的source 路徑 import os from pathlib import...

python 獲取當前指令碼所在路徑

coding cp936 import sys,os 獲取指令碼檔案的當前路徑 def cur file dir 獲取指令碼路徑 path sys.path 0 判斷為指令碼檔案還是py2exe編譯後的檔案,如果是指令碼檔案,則返回的是指令碼的目錄,如果是py2exe編譯後的檔案,則返回的是編譯後的...

Python 獲取當前指令碼檔案路徑目錄

coding cp936 importsys,os 獲取指令碼檔案的當前路徑 defcur file dir 獲取指令碼路徑 path sys.path 0 判斷為指令碼檔案還是py2exe編譯後的檔案,如果是指令碼檔案,則返回的是指令碼的目錄,如果是py2exe編譯後的檔案,則返回的是編譯後的檔案...