python打印當前文件的絕對路徑並解決打印為空的問題

python打印當前文件的絕對路徑並解決打印為空

獲取當前文件所在路徑主要使用os.path.dirname(os.path.abspath(__file__))

import os

file_path = os.path.dirname(os.path.abspath(__file__))
print(file_path)

不能使用下面代碼,在有些情況下路徑會是空

os.path.dirname(__file__)

示例:得到相對位置的文件路徑

上級文件夾下的文件,比如config.yaml文件的路徑可以表示為:os.path.dirname(os.path.abspath(__file__)) + "/../conf/config.yaml"

|_ conf
	|_ config.yaml
|_src 
	|_代碼  # 當前位置

補充:python中對文件路徑的獲取

1、獲取當前文件的絕對路徑

import os
cur_path = os.path.abspath(__file__)
print(cur_path)

輸出:E:\python\project\test\path_test.py

2、獲取當前文件的所在目錄

import os
cur_dir = os.path.dirname(os.path.abspath(__file__))  # 上級目錄
print(cur_dir)

輸出:E:\python\project\test

3、獲取當前文件所在目錄的上一級目錄

import os
cur_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))   # 上級目錄
print(cur_dir)

輸出:E:\python\project

4、獲取指定文件的路徑(例如想獲得project文件夾下的test.txt文件路徑)

import os
# 法一 
cur_dir1 = os.path.dirname(os.path.abspath(__file__))
path1 = os.path.join(os.path.abspath(cur_dir + os.path.sep + ".."), "test.txt") 
# 法二
cur_dir2 = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
path2 = os.path.join(os.path.dirname(cur_dir), "test.txt")
print(path1)
print(path2)

輸出:

E:\python\project\test.txt
E:\python\project\test.txt

註意:
隻有當在腳本中執行的時候,os.path.abspath(file)才會起作用,因為該命令是獲取的當前執行腳本的完整路徑,如果在交互模式或者terminate 終端中運行會報沒有__file__這個錯誤。

到此這篇關於python打印當前文件的絕對路徑,並解決打印為空的文章就介紹到這瞭,更多相關python打印當前文件的絕對路徑內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: