UI自动化之 os.path.dirname(__file__)、os.path.abspath(__file__)、os.path.join()使用
转自「peiwang245」的原创文章 https://blog.csdn.net/peiwang245/article/details/98077910
转自化茧成蝶梦成真的原创文章 https://blog.csdn.net/weixin_45711264/article/details/104740288
我在C:\Users\admin\Desktop目录下写了一个001.py文件,文件代码如下:
执行结果如下:
相信你已经看出区别了,下面来总结一下:
1、os.path.dirname(file)返回的是.py文件的目录
2、os.path.abspath(file)返回的是.py文件的绝对路径(完整路径)
3、在命令行运行时,如果输入完整的执行的路径,则返回.py文件所在的目录,否则返回空目录。如:
4、os.path.dirname(os.path.abspath(file))组合使用,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
5、os.path.join()进行路径拼接
我的代码所在目录如下图:
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")
采用debug的方法,看每一步的值,如下图:
这样就很容易理解了:
os.path.abspath(file)返回代码文件的所在的目录,不带文件名;
os.path.dirname(path)返回path目录或者绝对路径的上一级目录,结合以上几张图,很容易看出:代码第二行对conf_path执行了两次os.path.dirname,得到的就是上两级的目录;第三行,与data拼接,最终形成数据所在目录。