没时间整理,推荐一篇文章:《为什么你应该使用 pathlib 》文章地址:https://treyhunner.com/2018/12/why-you-should-be-using-pathlib/
路径
管理库
path
lib
在
python
3.4版本之后支持,它可以让我们采用面向对象的方式来处理
路径
,带来十分轻快简洁的体验。
下面介绍一些
os
.
path
的常用场景,以及
path
lib
的替代方案。
仅在第一个示例显示import的内容
1.
获取
当前
路径
的绝对
路径
import
os
.
path
from
path
lib
import
Path
os
.
path
.abs
path
(__file__)
在test.py
文件
中
获取
该test.py
文件
所在
路径
,这个test.py
文件
用来被其他
路径
下的主程序调用,用
os
.getcwd()或
path
lib
的
Path
.cwd()
获取
到的都是程序运行时的
路径
,而非该test.py
文件
所在的
路径
。
该test.py
文件
的
路径
名称
获取
方法:
rel_file_
path
=
os
.
path
.abs
path
(__file__)
该test.py
文件
所在的
文件
夹
路径
获取
方法:
rel_dir_
path
=
os
.
path
.dirname(
os
.
path
.abspa
当我们导入一个
模块
时:import xxx,默认情况下
python
解析器会搜索当前目录、已安装的内置
模块
和第三方
模块
,搜索
路径
存放在sys
模块
的
path
中:
[
python
] view plain copy
print?
>>>importsys
>>>sys.
path
['','C:\\
Python3
52\\...
前段时间,在使用新版本的 Django 时,我发现了 settings.py 的第一行代码从
import
os
BASE_DIR =
os
.
path
.dirname(
os
.
path
.dirname(
os
.
path
.dirname(
os
.
path
.abs
path
(__file__))))
from
path
lib
import
Path
BASE_DIR =
Path
(__file__).resolve().parent.parent
为什么
path
lib
更值得我们使用?
打印当前的
路径
官方定义:Object-oriented filesystem
path
s(面向对象的
文件
系统
路径
)
官方推荐:
path
lib
是一个从3版本开始就能完全替代
os
.
path
的内置库,在
python
官网中这样说 "对于字符串的低级
路径
操作,您也可以使用该
os
.
path
模块
"
path
lib
和
os
.
path
的比较
当需要找多个层级的目录
路径
时,通过
os
.
path
需要嵌套写法,如我上面的project_
path
,而
path
lib
可以提供链式写法,简洁明了
os
.pa...
p.exists() # 判断当前
路径
是否是
文件
或者
文件
夹
p.glob(filename) #
获取
路径
下的所有符合filename的
文件
,返回一个generator
p.rglob(filename) # 与上面类似,只不过是返回
路径
中所有子
文件
夹的符合filename的
文件
p =
Path
()
# Windows
Path
('.')
p.resolve() # 文档显示是absolute
path
, 这里感觉只能用在
获取
当前绝对
路径
上
# Windows
Path
('C:/Users/Cabby')
p =
Path
(r'...