在Python中,`pathlib` 是一个强大的文件系统路径操作库,它提供了面向对象的方式来处理文件系统路径。以下是对 `pathlib` 库的详细解析:### 1. 导入 `pathlib`首先,你需要从 `pathlib` 模块中导入 `Path`
摘要:python 文件管理库 Path 解析 1 Path库能做什么: Path库是python常见的文件操作库(以对象形式操作文件路径),可以进行以下操作: 文件路径的拼接(example: testYour_pathfiles
python 文件管理库 Path 解析
1 Path库能做什么:
Path库是python常见的文件操作库(以对象形式操作文件路径),可以进行以下操作:
文件路径的拼接(example: test / Your_path / files )
文件地址的提取(提取名称、后缀、全程......)
层级关系访问
查询文件是否存在
创建目录
.............(基本上文件操作都够用的实用库)
2 Path 与 os 库的优势 (可选)
(了解文件操作库os的可以查看,不了解建议略过)
from pathlib import Path
import os
def get_base_name_vs_os(input_file_path:str):
'''
获取当前py文件的完整名称、不带后缀名称、后缀
:return:
'''
fpath_os = input_file_path
fpath_path = Path(input_file_path)
#u can debug this function and try to input-> type(fpath_path) in ur IDE-debug window,u can see <class 'pathlib.WindowsPath'>
print(
f'os method: {os.path.basename(fpath_os)}, {os.path.basename(os.path.splitext(fpath_os)[0])}, {os.path.splitext(fpath_os)[-1]}'
)
print(
f'Path method: {fpath_path.name}, {fpath_path.stem}, {fpath_path.suffix}'
)
return
if __name__ == '__main__':
get_base_name_vs_os(r'your_file_path_like_C:\window')
优势:
Path库相比os库有更全的封装接口,能够快速且便携地获取想要的文件地址,同样的实现步骤可能需要好几层os
操作对象为Object(即面向对象),可以很方便调用类方法,而os需要调用os库,相对来说繁琐一些
劣势:
虽然在很多方面完胜os,但本质是 不可哈希 的类型——object,类 类型,在写接口兼容、调用路径时需要注意。
其他兼容性问题。
3 Path库常用操作:
3.1 初始化路径
想初始化Path对象路径很简单,和其他类对象一样,只需要Path(your_path)即可获得对应的路径对象。
def init_path():
input_path = Path(r"your_input_path_test.py")#直接通过Path 初始化
print(input_path)
return input_path
除了直接通过单一变量初始化路径,还能通过以下示例进行初始化:
input_path = Path(r"C:\\","Windows","your_dir") #构造 c盘,window/your_dir的文件路径,可以传入多个路径,返回他们按顺序构造的路径
input_path = input_path / "hello_world.py"
3.2 获取文件地址(文件名称【带后缀、不带后缀】及后缀)
假设已经获取了文件对象的变量为:input_path = Path("your_path")
文件名称(完整带后缀):用 input_path.name即可 ,返回带后缀的文件名称【依旧是Path对象】
文件名称(不带后缀):用 input_path.stem即可,stem 有茎的意思,假设文件路径像一朵花,地上的花就包含了花朵和根茎,少了花朵部分,根茎也可以被认为是不带后缀(花朵)的了。
文件名称(后缀):用 input_path.suffix即可 ,suffix翻译过来就是后缀,返回文件后缀【str】
但是这里要注意,如果有多个后缀,如 library.tar.gz, 则会返回最后一个后缀,如果想要获取n个后缀,请使用 suffixes。
