美文网首页pythonai
[python] pathlib

[python] pathlib

作者: VanJordan | 来源:发表于2019-01-16 15:56 被阅读6次

    以一个更方便和更人性化的方法对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] pathlib

        本文链接:https://www.haomeiwen.com/subject/hhumdqtx.html