【转载】关于pathlib 的用法介绍

最近入职了新公司,南京的西门子电气自动化有限公司,不过是外包进的,都是泪!哎!不管怎样,继续努力,继续学习,继续加油吧!

这两天接触到了pathlib模块,发现比os.path 等好用太多,特此记录一下:

地址:https://www.jianshu.com/p/ecc1af359df9

以一个更方便和更人性化的方法对os.path进行了包装,那么我们可以以后统一建立一个ROOT_PATH的path类然后对其进行操作。

  • from pathlib import Path 导入包。
  • p = Path(filepath)创建一个path对象
    当p是路径的时候
    • p.parent:p的父路径
    • p.parents:p的所有祖辈路径,返回一个列表,序号越大表示离p越远。
    • p.iterdir():返回一个迭代器,包含P下所有的文件。
    • p.is_file()p.is_dir()判断p是文件还是目录。
    • p.is_absolute()判断p是否是绝对路径。
    • p.match('C:\Windows\*'):判断p是否符合某一个模式。
    • p.glob('*.py'):在p下搜索符合某一模式的文件。
    • p.glob('**\*.py')或者p.rglob('*.py')在p及其子目录下搜索符合某一模式文件,rglob是递归的遍历所有子目录的文件。
    • p.mkdir()如果p不是目录的时候创建目录。
      • Path.mkdir(mode=0o777, parents=False, exist_ok=False):如果parents为True的时候,那么当中间文件夹缺失的时候也可以创建中间文件夹,如果exist_ok为True的时候那么可以当文件夹存在的时候不raise error.
        *p.joinpath('a','b'):文件夹的连接。

PurePosixPath('/etc').joinpath('init.d', 'apache2')
PurePosixPath('/etc/init.d/apache2')
当p是文件的时候

  • p.name:获取文件名。
  • p.suffix:获取后缀。

其他用法

  • Path.cwd()返回当前路径名
  • 最好用的方法莫过于直接用除法就表示路径了。
print(Path("/home/zhaoliang/test.py").parent/'vocab.txt')
> /home/zhaoliang/vocab.txt
  • stem 目录最后一个部分,没有后缀
print(Path("/home/zhaoliang/test.py").stem)
>test
  • with_name(name) 替换目录最后一个部分并返回一个新的路径
print(Path("/home/zhaoliang/test.py").with_name('vocab.txt'))
> /home/zhaoliang/vocab.txt
  • with_suffix(suffix) 替换扩展名,返回新的路径,扩展名存在则不变
print(Path("/home/zhaoliang/test.py").with_suffix('.txt'))
> /home/zhaoliang/test.txt
  • Path().exist()判断路径或者文件是否存在。
# 判断路径是否存在
path = Path("path/file")
path.exist()

你可能感兴趣的:(python,技术)