python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】
2021-02-04 01:15
标签:war mamicode view http com inf work 而不是 class 当你搜索 "获取当前文件路径" 时,有的文章会提到用os.getcwd(),但是这玩意要慎用! 废话不多说,直接上例子: E:\program_software\Pycharm\ytb\ytb_api\api\views.py 文件内容如下: 在别处调用后: 结果并不是想要的当前文件路径。 为什么会这样? 去看getcwd源码: 解释:return 得到当前工作路径(working directory) 那这个working directory到底是什么? 继续搜索: 翻译一下: 当前工作路径 working directory 就是脚本运行/调用/执行的地方,而不是脚本本身的地方。 也就是说「当前文件路径」跟「当前工作路径」没关系, 即os.getcwd() 返回值跟你的 Python 文件路径没关系, 如果要获得「文件路径」你得使用 __file__。 比如,我想要的是当前文件的绝对路径,那就需要这俩哥出场了: 还以E:\program_software\Pycharm\ytb\ytb_api\api\views.py 举例子: 搭配使用,返回当前文件所在文件夹的绝对路径(这两个结果是一样的): 如果看过些源码的话,会发现很多源码都这么用: 总结一下: 「当前文件路径」用 os.path.abspath(os.path.dirname(__file__)) 「当前工作路径」用 os.path.abspath(os.path.dirname(os.getcwd())) 手敲不易,如果有帮助,请您给我点个推荐,感谢。 python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】 标签:war mamicode view http com inf work 而不是 class 原文地址:https://www.cnblogs.com/liangmingshen/p/12794631.htmlpath1 = os.path.abspath(os.path.dirname(os.getcwd()))
print(‘path1: ‘, path1)
# Return the absolute version of a path. 获取当前文件的绝对路径
print(os.path.abspath(__file__))
# E:/program_software/Pycharm/ytb/ytb_api/api/views.py
# Returns the directory component of a pathname 获取当前文件所属的文件夹
print(os.path.dirname(__file__))
# E:/program_software/Pycharm/ytb/ytb_api/api
path1 = os.path.dirname(os.path.abspath(__file__))
print(path1)
# E:/program_software/Pycharm/ytb/ytb_api/api
path2 = os.path.abspath(os.path.dirname(__file__))
print(path2)
# E:/program_software/Pycharm/ytb/ytb_api/api
文章标题:python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】
文章链接:http://soscw.com/index.php/essay/50667.html