这里主要记录下os.path.join()的用法
目录结构如下
在readconfig.py中进行试验,如下
1.使用os.path.realpath(__file__)获取文件所在目录
import os
print(os.path.realpath(__file__))
运行结果
E:Crawlercommon eadconfig.py 运行结果显示 “路径+文件名”
2. os.path.split(path),将path分割成目录和文件名二元组返回
在上一步的基础上运用split方法
1. print(os.path.split(os.path.realpath(__file__)))
或者直接使用绝对路径看的更清楚些
2. print(os.path.split('E:Crawlercommon\readconfig.py'))
那么如果只取目录的话,如下
3. print(os.path.split(os.path.realpath(__file__))[0])
运行结果
1、2的结果 ('E:\Crawler\common', 'readconfig.py') 3的结果 E:Crawlercommon
3.os.path.abspath('.'), 获取当前文件所在路径
print(os.path.abspath('.'))
运行结果
E:Crawlercommon
4.os.path.dirname(path),返回path的目录
1. print(os.path.dirname('E:Crawlercommon\readconfig.py'))
结果:E:Crawlercommon
2. print(os.path.dirname('E:Crawlercommon'))
结果:E:Crawler
所以 os.path.dirname(os.path.abspath('.')) 表示获取当前文件所在目录的上一级目录,即项目所在目录E:Crawler
结果:E:Crawler
5.os.path.join(), 用于路径拼接,将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
所谓第一个绝对路径,是从“尾部向头部读,所得到的第一个绝对路径”,以 “” 为标识
print(os.path.join('E:Crawler', "config.ini"))
结果:E:Crawlerconfig.ini
print(os.path.join('E:Crawler', 'D:\aa', "config.ini"))
结果:D:aaconfig.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