OS模塊中獲取當前文件的絕對路徑的相關方法

os.path.realpath(__file__)

作用:獲取當前執行py腳本的絕對路徑(在當前工作目錄下的絕對路徑)

__file__ : 表示當前文件的本身,一般值是當前文件的相對路徑

例如:

main.py 腳本文件的路徑是 /home/study_explore/cnn_VMASK/main.py

在main.py 文件中運行以下代碼:

dir_path = os.path.realpath(__file__)
print(__file__)
print(dir_path)

>> main.py
>> /home/study_explore/cnn_VMASK/main.py

os.path.dirname(path)

作用: 去掉文件名(或者文件夾),並返回該文件所在的目錄

例如:

main.py 腳本文件的路徑是 /home/study_explore/cnn_VMASK/main.py,在main.py 中有如下代碼:

dir_path = os.path.realpath(__file__)
print(os.path.dirname(dir_path))
print(os.path.dirname(os.path.dirname(dir_path)))

>> /home/study_explore/cnn_VMASK
>> /home/study_explore

TIPS: os.path.realpath(__file__) 和 os.path.dirname(path) 結合起來使用就可以的到在工作目錄下的當前文件所在目錄的絕對路徑。

例如:

main.py 腳本文件的路徑是 /home/study_explore/cnn_VMASK/main.py,在main.py 中有如下代碼:

dir_path = os.path.dirname(os.path.realpath(__file__))
print(dir_path)

>> /home/study_explore/cnn_VMASK

os.path.abspath()

作用: 返回指定的py腳本的絕對路徑

例如:

main.py 腳本文件的路徑是 /home/study_explore/cnn_VMASK/main.py,在main.py 中有如下代碼:

print(os.path.abspath(__file__))
print(os.path.abspath(".")) #當前文件所在目錄的絕對路徑
print(os.path.abspath("..")) #當前文件的上級目錄的絕對路徑

>> /home/study_explore/cnn_VMASK/main.py
>> /home/study_explore/cnn_VMASK
>> /home/study_explore

os.path.basename()

作用: 返回當前所在腳本的文件名稱

例如:

print(os.path.basename(__file__))

>> main.py

os.getcwd()

作用: 返回當前進程的工作目錄。

工作目錄:每一個可運行的程序都會有一個工作目錄,而不是直接在根目錄下運行的,該程序的相對路徑就是指相對於工作目錄。

相對應的 os.chdir() –> 設置當前進程的工作目錄

例如:

main.py 腳本文件的路徑是 /home/study_explore/cnn_VMASK/main.py,在main.py 中有如下代碼:

dir_path = os.path.dirname(os.path.realpath(__file__))
os.chdir(dir_path)
print(os.getcwd())

>> /home/study_explore/cnn_VMASK

os.path.join()

作用: 文件路徑的拼接

詳細請見: python中 OS模塊中 os.path.join() 函數用法簡介 – jacknie23 – 博客園 (cnblogs.com)

os.path.split()

作用: 分割全路徑名中的目錄和文件名; 如果給出的是一個目錄和文件名(a/b/c.py)或者(a/b/c),則輸出路徑和文件名((“a/b”,”c.py”)) 或者 ((“a/b”,”c”)) ; 如果給出的是一個目錄名(a/b/c),則輸出路徑和為空文件名((“a/b/c”,””))

也就是說,它僅僅是以 全路徑名 中最後一個 ‘/’ 作為分隔符,分隔後,將索引為0的視為目錄(路徑),將索引為1的視為文件名