优化和封装工具,使它们更强大

chenlib的Python项目详细描述


chenlib 模块目录:

  1. fpmgt :file path management

    -- 提供面向对象的文件与系统路径相关操作


chenlib.fpmgt

​ 集成了标准库中的 pathlib 与 shutil,该模块以路径操作为核心,调用者只需通过传入路径实例化一个路径的操作对象,即可对路径所指向的区域调用操作函数,fpmgt提供了对文件的创建、删除、移动、重命名以及创建符号链接等操作,以及针对树结构的目录的递归拷贝、递归移动、递归删除等操作。

​ fpmgt 模块提供两种实例化方式, PurePath 和 Path ,分别对应了纯路径以及具象路径

fromchenlib.fpmgtimport*# PurePath(*pathsegments)# 纯路径对象,只提供对路径本身的操作path=PurePath('.')# pathsegments 可接收一个或多个代表路径片段的字符串path=PurePath('f:\\','abc','c')# 等同于 PurePath(r'f:\abc\c')path=PurePath('f:\\a','f:\\b')# 传入多个绝对路径则锚定最后一个PurePath(r'f:\b')# 具象路径对象,PurePath 的子类,提供针对系统文件的 IO 操作path=Path('.')# 路径对象可通过转换成 string 或 bytes 类型,传递给任何需要字符串形式路径的函数pure_path=PurePath('f:\\','abc','c')path=Path(str(pure_path))# 实现将纯路径对象转换成具象路径对象

​ PurePath 的一些访问属性的实例方法:

# PurePath.parts # 可以访问路径的多个组件r=PurePath('c://abc//cc').parts# r == ('c:\\', 'abc', 'cc')# PurePath.anchor # 返回路径的盘符名称,如果它存在的话r=PurePath('c://abc//cc').anchor# r -> string == 'c:\\'r=PurePath('//abc//cc').anchor# r -> string == '\\'# PurePath.parents # 通过类似切片下标的方式去访问路径逻辑祖先的部分组件r=PurePath('c://abc//cc//test.txt').parents[0]# r -> PurePath('c://abc//cc')r=PurePath('c://abc//cc//test.txt').parents[1]# r -> PurePath('c://abc')r=PurePath('c://abc//cc//test.txt').parents[2]# r -> PurePath('c://')# PurePath.name# 返回路径最后一个组件,排除了驱动器与根目录,如果它存在的话r=PurePath('c://abc//cc//test.txt').name# r -> string == 'test.txt'r=PurePath('c://abc//cc').name# r -> string == ''# PurePath.suffix# 访问该路径的最后一个组件的文件扩展名,如果它存在的话r=PurePath('c://abc//cc//test.txt').suffix# r -> string == '.txt'r=PurePath('c://abc//cc//test.pyc.txt').suffix# r -> string == '.txt'r=PurePath('c://abc//cc').suffix# r -> string == ''# PurePath.stem # 访问该路径的最后一个组件,去除文件扩展名,如果它存在的话r=PurePath('c://abc//cc//test.txt').stem# r -> string == 'test'r=PurePath('c://abc//cc//test.pyc.txt').stem# r -> string == 'test.pyc'r=PurePath('c://abc//cc').stem# r -> string == 'cc'

​ PurePath 的一些的操作路径的实例方法:

# PurePath.is_absolute()  # 判断该对象指向的路径是否是一个绝对路径,返回一个 bool 值r=PurePath('c://abc//cc.txt').is_absolute()# r == True / False# PurePath.joinpath(*path_segments)  # 在原始路径上进行连接,返回一个连接后的路径对象,不影响原始路径r=PurePath('c://').joinpath('abc')# r == PurePath('c://abc')r=PurePath('c://').joinpath('abc','cc')# r == PurePath('c://abc//cc')# PurePath.longer_joinpath(*path_segments)  # 与 joinpath() 一样,但是该函数会永久的修改对象的原始路径r=PurePath('c://').longer_joinpath('abc')# r == PurePath('c://abc')# PurePath.match(pattern)  # 将此路径与提供的通配符风格的模式匹配,返回一个 bool 值r=PurePath('abc//cc//test.txt').match('*.py')# r -> bool -> Truer=PurePath('abc//cc//test.txt').match('cc//*.py')# r -> bool -> Truer=PurePath('abc//cc//test.txt').match('abc//*.py')# r -> bool -> False# 如果 pattern 是绝对路径,则路径也必须是绝对的,而且必须完全匹配:r=PurePath('c://test.txt').match('c://*.txt')# r -> bool -> Truer=PurePath('c://test.txt').match('*.txt')# r -> bool -> False# PurePath.with_name(name) # 修改路径的 name 并返回修改后的新路径对象# 如果原始路径没有 name ,抛出 ValueError 错误r=PurePath('c://abc//test.txt').with_name('test.pyc')# r == 'c://abc//test.pyc'# PurePath.with_suffix(suffix) # 修改路径的 suffix 并返回修改后的新路径对象# 如果原始路径没有后缀,则将 suffix 追加为后缀# 如果 suffix 为空字符串,则将原始路径的后缀移除r=PurePath('c://abc//test.txt').with_name('.pyc')# r == 'c://abc//test.pyc'r=PurePath('c://abc//test').with_name('.pyc')# r == 'c://abc//test.pyc'r=PurePath('c://abc//test').with_name('')# r == 'c://abc//test'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何将java LocalDateTime转换为DolphinDB时间戳?   如何将(Android)应用程序上下文传递给Java类?   java如何将HTML表单提交重定向到iframe?   JavaSpringMVC注释@ModelAttribute   java将Spring组件捆绑到库中,以便其他项目可以选择使用其中的一些组件?   java SocketChannel write()返回时没有错误,但没有实际发送数据   JDK8是java类型。util。无法解析Map$条目   如何从中读取两个连续的逗号。csv文件格式在java中作为唯一值   从DAO到控制器的java类型转换   ssl Java JDBC公钥连接失败,原因为:“无法找到到请求目标的有效证书路径”   java如何使swing应用程序具有黑暗的nimbus主题netbeans   Java D中的属性D代表什么?   java中的所有抽象方法都是用void返回类型声明的吗?   java HTTP响应不生成定义的多部分边界