這裏主要記錄下os.path.join()的用法spa
目錄結構以下code
在readconfig.py中進行試驗,以下blog
import os
print(os.path.realpath(__file__))
運行結果it
E:\Crawler\common\readconfig.py 運行結果顯示 「路徑+文件名」
在上一步的基礎上運用split方法
1. print(os.path.split(os.path.realpath(__file__)))
或者直接使用絕對路徑看的更清楚些
2. print(os.path.split('E:\Crawler\common\\readconfig.py'))
那麼若是隻取目錄的話,以下
3. print(os.path.split(os.path.realpath(__file__))[0])
運行結果class
一、2的結果 ('E:\\Crawler\\common', 'readconfig.py') 3的結果 E:\Crawler\common
print(os.path.abspath('.'))
運行結果import
E:\Crawler\common
1. print(os.path.dirname('E:\Crawler\common\\readconfig.py'))
結果:E:\Crawler\common
2. print(os.path.dirname('E:\Crawler\common'))
結果:E:\Crawler
因此 os.path.dirname(os.path.abspath('.')) 表示獲取當前文件所在目錄的上一級目錄,即項目所在目錄E:\Crawler
結果:E:\Crawler
所謂第一個絕對路徑,是從「尾部向頭部讀,所獲得的第一個絕對路徑」,以 「\」 爲標識基礎
print(os.path.join('E:\Crawler', "config.ini"))
結果:E:\Crawler\config.ini
print(os.path.join('E:\Crawler', 'D:\\aa', "config.ini"))
結果:D:\aa\config.ini
print(os.path.join('/home/mnt','/home/mnt/attach','/home/a/b/c'))
結果:/home/a/b/c
print(os.path.join('/local', '\\aa', "/config.ini"))
結果:/config.ini