美文网首页
Python标准库(1)—Pathlib

Python标准库(1)—Pathlib

作者: 北邮郭大宝 | 来源:发表于2021-05-07 17:28 被阅读0次

    准备开一个长期专题,将学习《Python标准库》中的一些demo记录下来,方便查询和回忆。Python的版本是3.7,官网文档在https://docs.python.org/zh-cn/3.7/library/index.html

    Pathlib是Python 3.4新加入的一个操作路径相关函数的模块,用于替代os.path模块。Pathlib提供Path类去处理,而不是直接操作字符串。

    Pathlib主要有PurePath类和继承而来的子类Path,前者是没有IO的纯路径,后者是可以有IO操作的具体路径。一般情况下直接使用Path即可。

    罗列一些常用的方法和熟悉:

    from pathlib import PurePath
    
    
    p = PurePath()
    p2 = p / 'app' / 'core'  # 拼接路径的方法一
    print(p2.joinpath("work1.py"))  # 拼接路径的方法二, 返回PurePath对象
    print(p2.parent)  # 返回父路径,Path对象
    print(p2.name)    # 返回最后路径组件的字符串,string
    print(p2.suffix)  # 返回最后一个组件的文件扩展名,如果有的话,string
    print(p2.stem)    # 返回最后一个路径组件,除去后缀,string
    print(p2.match("/*.py")) # 模块匹配
    

    Path类除了上述方法外,还有一些其他的:

    from pathlib import Path
    
    
    p = Path()
    print(p.cwd())   # 当前目录的路径对象
    print(p.home())  # 当前用户家目录
    print(p.resolve()) # 绝对路径
    print(p.joinpath("work1.py").exists())  # 是否存在
    print(list(p.glob('*/*.py')))  # 解析相对于此路径的通配符 pattern,产生所有匹配的文件
    print(p.is_file())
    print(p.is_dir())
    [print(x) for x in p.iterdir() if x.is_dir()]  # 产生该路径下的对象的路径
    
    p4 = p / "abc"
    p4.mkdir(exist_ok=True)  # 创建文件夹
    p4.rmdir()   # 删除文件夹
    
    p6 = p / 'test.txt'
    p6.touch()   # 创建文件
    data = ['hello world', 'bye']
    with p6.open("a") as f:  # 写文件
        for d in data:
            f.write(d+'\n')
    
    with p6.open() as f:     # 读文件
        for line in f.readlines():
            print(line.strip())
    
    p6.rename(Path('test1.txt'))   # 重命名方法一
    p7 = p / 'test1.txt'
    p7.replace(Path('test2.txt'))  # 重命名方法二
    p8 = p / 'test2.txt'
    p8.unlink()  # 删除文件
    

    最后是pathlib和os.path方法的映射表,熟悉那个用那个吧。


    1620376634671.jpg

    相关文章

      网友评论

          本文标题:Python标准库(1)—Pathlib

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