一文弄懂pathlib所有骚操作!os高级版本!

81 阅读2分钟

作者帅的人都关注了

GithubGithub

爱好Americano More Ice !

QQ学习交流群(new): 811792998

pathlib(引用官网): 该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径

image.png

话不多说,实战为主!

直接上CODE! 看完不懂算我输!

import collections
from pathlib import Path

if __name__ == '__main__':
    print(f"""
        获取当前工作目录: {Path.cwd()}
        获取用户home目录: {Path.home()}
        获取当前文件路径: {[p for p in Path(__file__).parts]}
        获取绝对路径: {[Path(__file__).resolve()]}
    """)
    # 获取文件属性
    file1 = Path(__file__)
    print(f"""
       文件属性:{file1.stat()}
       文件大小:{file1.stat().st_size}
       文件创建时间:{file1.stat().st_ctime}
       文件修改时间:{file1.stat().st_mtime}
    """)
    # 路径组成部分
    print(f"""
        文件名(包括后缀):{file1.name}
        文件名(不包括后缀): {file1.stem}
        后缀: {file1.suffix}
        父级目录: {file1.parent}
        父二级目录: {file1.parent.parent}
        目录前面部分: {file1.anchor}
    """)
    # 子路径扫描
    cwd = Path.cwd()
    print(f"""
        扫描某个目录下所有路径:{[path for path in cwd.iterdir() if cwd.is_dir()]}
        统计目录下的不同文件类型: {collections.Counter([f.suffix for f in cwd.iterdir() if f.is_file()])}
        匹配当前目录下glob: {list(cwd.glob('*.py'))}
        匹配当前目录下rglob: {list(cwd.rglob('*.py'))}
    """)
    # 路径测试
    file = Path(__file__)
    print(f"""
        是否为文件: {file.is_file()}
        父级目录是否为文件: {file.is_file()}
        是否为文件夹: {file.is_dir()}
        父级目录是否为文件夹: {file.is_dir()}
        是否存在: {file.exists()}
    """)
    # 文件操作
    filet = Path('1.txt')
    dirt = Path('/dirs/dir')
    print(f"""
        创建文件(文件存在不做任何操作): {filet.touch(exist_ok=True)}
        创建文件(文件存在,报错): {filet.touch(exist_ok=False)}
        创建目录(一级目录): {dirt.mkdir()}        
        创建目录(多级目录): {dirt.mkdir(parents=True)}        
        删除目录: {dirt.rmdir()}
    """)

附:相关连接

结束语:如果遇到什么疑问或者建议的,可直接留言评论!作者看到会马上一一回复

如果觉得小白此文章不错或对你有所帮助,期待你的一键三连💫!❤️ ni ~