IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]8.1.2 纯路径操作

    caimouse发表于 2016-03-05 09:56:15
    love 0

    纯路径操作对象提供了一些操作路径的功能,但不会访问文件系统的功能。主要提供下面三个类对象:

    class pathlib.PurePath(*pathsegments) 

    创建一个通用表示文件路径的类。

    例子:

    #python 3.4

    from pathlib import *

     

    p = PurePath('F:\\temp\\py')

    print(p)

    p = PurePath('foo', 'some/path', 'bar')

    print(p)

    p = PurePath(Path('foo'), Path('bar'))

    print(p)

    结果输出如下:

    F:\temp\py

    foo\some\path\bar

    foo\bar

     

    class pathlib.PurePosixPath(*pathsegments) 

    它是PurePath的子类,提供了对非Windows系统的路径操作。

    例子:

    #python 3.4

    from pathlib import *

     

    p = PurePosixPath('/py')

    print(p)

    结果输出如下:

    /py

     

    class pathlib.PureWindowsPath(*pathsegments) 

    它是PurePath的子类,提供了对Windows系统的路径操作。

    例子:

    #python 3.4

    from pathlib import *

     

    p = PureWindowsPath('c:/py')

    print(p)

    结果输出如下:

    c:\py

     

    以上几个类,无论在什么操作系统上都可以使用,因为它们都不会调用操作系统的系统调用功能。

    路径对象是不可改的对象,并且是可以HASH的对象,因此路径对象是可以进行比较和排序的操作。

    例子:

    #python 3.4

    from pathlib import *

     

    p = PureWindowsPath('c:/py') == PureWindowsPath('c:/PY')

    print(p)

    p = PureWindowsPath('FOO') in { PureWindowsPath('foo') }

    print(p)

    p = PureWindowsPath('C:') < PureWindowsPath('d:')

    print(p)

    结果输出如下:

    True

    True

    True

    但不同的系统路径对象是不能进行比较的,比如PureWindowsPath对象不能与PurePosixPath对象进行比较。

     

    PurePath.parts 

    独立地访问路径每一部分,返回一个元组。

    例子:

    #python 3.4

    from pathlib import *

     

    p = PurePath('/usr/bin/python3')

    print(p)

    print(p.parts)

    p = PureWindowsPath('c:/blog.csdn.net/caimouse')

    print(p.parts)

    结果输出如下:

    \usr\bin\python3

    ('\\', 'usr', 'bin', 'python3')

    ('c:\\', 'blog.csdn.net', 'caimouse')



    蔡军生  QQ:9073204  深圳



沪ICP备19023445号-2号
友情链接