zoukankan      html  css  js  c++  java
  • pathlib --- 面向对象的文件系统路径pathlib --- 面向对象的文件系统路径

    https://docs.python.org/zh-cn/3/library/pathlib.html

    https://yetingyun.blog.csdn.net/article/details/107991203?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

     

    一、返回当前工作目录路径和Home路径

    current_path = Path.cwd()   # 获取当前目录

    home_path = Path.home()   # Home目录

    二、父目录操作

    1. current_path.parent        # 获取上级父目录
    2. 遍历整个父目录:

    for p in current_path.parents:

        print(p)

    三、文件名操作

    1. 常用的文件名操作属性如下:

    name 目录的最后一个部分

    suffix 目录中最后一个部分的扩展名

    suffixes 返回多个扩展名列表

    stem 目录最后一个部分,没有后缀

    with_name(name) 替换目录最后一个部分并返回一个新的路径

    with_suffix(suffix) 替换扩展名,返回新的路径,扩展名存在则不变

    2. 路径拼接和分解

    #直接传进一个完整字符串

    example_path1 = Path('/Users/Anders/Documents/powershell-2.jpg')

    #也可以传进多个字符串

    example_path2 = Path('/', 'Users', 'dongh', 'Documents', 'python_learn', 'pathlib_', 'file1.txt')

    #也可以利用Path.joinpath()

    example_path3 = Path('/Users/Anders/Documents/').joinpath('python_learn')

    # #利用 / 可以创建子路径

    example_path4 = Path('/Users/Anders/Documents')

    example_path5 = example_path4 / 'python_learn/pic-2.jpg'

    3. 遍历文件夹:路径对象后面直接使用**iterdir()**方法,该方法返回一个生成器,我们可以循环遍历出所有指定目录下的目录路径。

    example_path = Path(r'C:UsersAdministratorDesktop就业班课件')

    for path in example_path.iterdir():

        print(path)

    4. 文件操作

    example_path = Path('/Users/Anders/Documents/information/JH.txt')

    with example_path.open(encoding = 'GB2312') as f:

        print(f.read())

    对于简单的文件读写,在pathlib库中有几个简便的方法:

    .read_text(): 以文本模式打开路径并并以字符串形式返回内容。

    .read_bytes(): 以二进制/字节模式打开路径并以字节串的形式返回内容。

    .write_text(): 打开路径并向其写入字符串数据。

    .write_bytes(): 以二进制/字节模式打开路径并向其写入数据。

    比如可以把之前的例子改写如下:

    example_path = Path('/Users/Anders/Documents/information/JH.txt')

    example_path.read_text(encoding='GB2312')

    5. 创建文件夹和删除文件夹

    创建文件目录mkdir方法接收两个参数:

     

    parents:如果父目录不存在,是否创建父目录。

    exist_ok:只有在目录不存在时创建目录,目录已存在时不会抛出异常。

    example_path = Path('/Users/Anders/Documents/test1/test2/test3')

    创建文件目录,在这个例子中因为本身不存在test1,test2,test3,由于parentsTrue,所以都会被创建出来。

    example_path.mkdir(parents = True, exist_ok = True)

    删除路径对象目录,如果要删除的文件夹内包含文件就会报错

    example_path.rmdir()

    1. 判断文件及文件夹对象是否存在

    is_dir() 是否是目录

    is_file() 是否是普通文件

    is_symlink() 是否是软链接

    is_socket() 是否是socket文件

    is_block_device() 是否是块设备

    is_char_device() 是否是字符设备

    is_absolute() 是否是绝对路径

    resolve() 返回一个新的路径,这个新路径就是当前Path对象的绝对路径,如果是软链接则直接被解析

    absolute() 也可以获取绝对路径,但是推荐resolve()

    exists() 该路径是否指向现有的目录或文件:

    1. 文件的信息

    example_path = Path(r'C:UsersAdministratorDesktop就业班课件函数名作参数的两种情景.docx')

    print(example_path.stat())

    # 输出如下:

    os.stat_result ( st_mode=33206, st_ino=7036874417841264, st_dev=549660743, st_nlink=1, st_uid=0, st_gid=0, st_size=12546, st_atime=1617721362, st_mtime=1617721362, st_ctime=1617720956 )

    print(example_path.stat().st_size)   # 文件大小

  • 相关阅读:
    关于cocos2dx之lua使用TableView
    设计模式-----工厂模式
    android YUV Sensor配置Camera应用的flash auto菜单
    AngularJS实现cookie跨域
    julia/pyplot 绘图加入标签和标题
    自己写unicode转换ascii码,wchar*到char*
    Android笔记——Activity中的数据传递案例(用户注冊)
    IIS预编译提升载入速度
    Python Tkinter 基础控件学习
    spfile
  • 原文地址:https://www.cnblogs.com/qqq789001/p/15113210.html
Copyright © 2011-2022 走看看