详解OS模块路径问题

1、

import os
conf_path = os.path.dirname(os.path.abspath(__file__))
work_path = os.path.dirname(os.path.dirname(conf_path))
data_path = os.path.join(work_path, "data")
print(conf_path)
print(work_path)
print(data_path)
print(os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))

D:\Python38\python.exe C:/Users/admin、/Downloads/AirtestIDE-win-1.2.5/AirtestIDE/case.air/Demo.air/Demo.py
C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE\case.air\Demo.air
C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE
C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE\data
C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE

os.path.abspath(file)返回代码文件的所在的目录,不带文件名;
os.path.dirname(path)返回path目录或者绝对路径的上一级目录,结合以上几张图,很容易看出:代码第二行对conf_path执行了两次os.path.dirname,得到的就是上两级的目录;第三行,与data拼接,最终形成数据所在目录。

2、返回某文件夹下的所有文件绝对路径

import os
outpath = "D:\D76A_ATA\Screenshots"
path = "D:\D76A_ATA\Screenshots"
for image_path in os.listdir(path):
    #print(image_path)  #相对路径
    full_path = os.path.join(path, image_path)
    print(full_path)
输出:    
D:\D76A_ATA\Screenshots\Screenshot_20210305-214355.png
D:\D76A_ATA\Screenshots\Screenshot_20210306-104045.png

3、

您可以避免使用显式的“…”和“.” 通过使用os.pardir和在路径名中输入os.curdir 增加代码的可移植性
os.pardir Windows 返回… os.curdir 输出"."

.py路径 D:\Python38\python.exe C:/Users/admin、/Downloads/AirtestIDE-win-1.2.5/AirtestIDE/case.air/Demo.air/Demo.py

filename="123"
file_path1 =  os.path.join(os.path.dirname(__file__))+ "/../" +"data/"+filename
file_path2=os.path.abspath(os.path.join(os.path.dirname(__file__),'data',filename))
file_path3 =  os.path.abspath(os.path.join(os.path.dirname(__file__),os.pardir,'data',filename))

print(file_path1)
print(file_path2)
print(file_path3)

# C:/Users/admin、/Downloads/AirtestIDE-win-1.2.5/AirtestIDE/case.air/Demo.air/../data/123
# C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE\case.air\Demo.air\data\123
# C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE\case.air\data\123




print(os.curdir)
print(os.path.abspath(os.curdir))
输出
# .
# C:\Users\admin、\Downloads\AirtestIDE-win-1.2.5\AirtestIDE\case.air\Demo.air
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值