python打印當(dāng)前文件的絕對(duì)路徑并解決打印為空的問(wèn)題
python打印當(dāng)前文件的絕對(duì)路徑并解決打印為空
獲取當(dāng)前文件所在路徑主要使用os.path.dirname(os.path.abspath(__file__))
:
import os file_path = os.path.dirname(os.path.abspath(__file__)) print(file_path)
不能使用下面代碼,在有些情況下路徑會(huì)是空
os.path.dirname(__file__)
示例:得到相對(duì)位置的文件路徑
上級(jí)文件夾下的文件,比如config.yaml
文件的路徑可以表示為:os.path.dirname(os.path.abspath(__file__)) + "/../conf/config.yaml"
|_ conf |_ config.yaml |_src |_代碼 # 當(dāng)前位置
補(bǔ)充:python中對(duì)文件路徑的獲取
1、獲取當(dāng)前文件的絕對(duì)路徑
import os cur_path = os.path.abspath(__file__) print(cur_path)
輸出:E:\python\project\test\path_test.py
2、獲取當(dāng)前文件的所在目錄
import os cur_dir = os.path.dirname(os.path.abspath(__file__)) # 上級(jí)目錄 print(cur_dir)
輸出:E:\python\project\test
3、獲取當(dāng)前文件所在目錄的上一級(jí)目錄
import os cur_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 上級(jí)目錄 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
注意:
只有當(dāng)在腳本中執(zhí)行的時(shí)候,os.path.abspath(file)才會(huì)起作用,因?yàn)樵撁钍谦@取的當(dāng)前執(zhí)行腳本的完整路徑,如果在交互模式或者terminate 終端中運(yùn)行會(huì)報(bào)沒(méi)有__file__這個(gè)錯(cuò)誤。
到此這篇關(guān)于python打印當(dāng)前文件的絕對(duì)路徑,并解決打印為空的文章就介紹到這了,更多相關(guān)python打印當(dāng)前文件的絕對(duì)路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深度學(xué)習(xí)的MNIST手寫數(shù)字?jǐn)?shù)據(jù)集識(shí)別方式(準(zhǔn)確率99%,附代碼)
這篇文章主要介紹了深度學(xué)習(xí)的MNIST手寫數(shù)字?jǐn)?shù)據(jù)集識(shí)別方式(準(zhǔn)確率99%,附代碼),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Python圖形繪制操作之正弦曲線實(shí)現(xiàn)方法分析
這篇文章主要介紹了Python圖形繪制操作之正弦曲線實(shí)現(xiàn)方法,涉及Python使用numpy模塊數(shù)值運(yùn)算及matplotlib.pyplot模塊進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12利用PyQt中的QThread類實(shí)現(xiàn)多線程
本文主要給大家分享的是python實(shí)現(xiàn)多線程及線程間通信的簡(jiǎn)單方法,非常的實(shí)用,有需要的小伙伴可以參考下2020-02-02詳解分布式任務(wù)隊(duì)列Celery使用說(shuō)明
這篇文章主要介紹了詳解分布式任務(wù)隊(duì)列Celery使用說(shuō)明,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11