python 笔记:Pathlib
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 笔记:Pathlib相关的知识,希望对你有一定的参考价值。
1 Pathlib介绍
pathlib是跨平台的、面向对象的路径操作模块,可适用于不同的操作系统,其操作对象是各种操作系统中使用的路径(包括绝对路径和相对路径)
pathlib有两个主要的类,分别为PurePath和Path。
1.1 PurePath
PurePath访问实际文件系统的“纯路径”,只负责对路径字符串执行操作。
PurePath有两个子类,即PurePosixPath和PathWindowsPath,前者用于操作UNIX(包括 Mac OS X)风格的路径,后者用于操作Windows风格的路径。
1.2 Path
Path访问实际文件系统的“真正路径”,Path对象可用于判断对应的文件是否存在、是否为文件、是否为目录等。
Path有两个子类,即PosixPath和WindowsPath,前者用于操作UNIX(包括 Mac OS X)风格的路径,后者用于操作Windows风格的路径。
1.3 PurePath和Path的区别
Path 是 PurePath 的子类,除了支持 PurePath 的各种操作、属性和方法之外,还会真正访问底层的文件系统,包括:
- 判断 Path 对应的路径是否存在
- 获取 Path 对应路径的各种属性(如是否只读、是文件还是文件夹等)
- 对文件进行读写
PurePath 和 Path 最根本的区别在于,PurePath 处理的仅是字符串,而 Path 则会真正访问底层的文件路径,因此它提供了属性和方法来访问底层的文件系统。
2 pathlib和os的区别
- pathlib在不同操作系统之间切换非常简单
- os操作导入模块不统一。 有时候需要导入 os,有时候又需要导入 os.path,而pathlib统一from pathlib import *即可。
- os返回的类型通常是字符串,但是路径和字符串并不等价,所以用os的时候,操作路径时有时候需要引入其他类库来协助操作;Pathlib模块则是面向对象,处理起来更方便
比如在windows中:二者找到当前目录的操作是这样的
import os
from pathlib import *
Path.cwd(),os.getcwd()
#(WindowsPath('C:/Users/16000'), 'C:\\\\Users\\\\16000')
在linux中,是这样的
pathlib操作 | os及os.path操作 | 功能描述 |
---|---|---|
Path.resolve() | os.path.abspath() | 获得绝对路径
|
Path.mkdir() | os.mkdir() | 创建目录 |
Path.rename() | os.rename() | 文件或文件夹重命名,如果路径不同,会移动并重新命名 |
Path.replace() | os.replace() | 文件或文件夹重命名,如果路径不同,会移动并重新命名,如果存在,则破坏现有目标。 |
Path.rmdir() | os.rmdir() | 删除目录 |
Path.unlink() Path.unlink() | os.remove() | 删除一个文件 |
os.unlink() | 删除一个文件 | |
Path.cwd() | os.getcwd() | 获得当前工作目录
|
Path.exists() | os.path.exists() | 判断是否存在文件或目录name |
Path.home() | os.path.expanduser() | 返回电脑的用户目录
|
Path.is_dir() | os.path.isdir() | 检验给出的路径是一个文件 |
Path.is_file() | os.path.isfile() | 检验给出的路径是一个目录 |
Path.is_symlink() | os.path.islink() | 检验给出的路径是一个符号链接 |
Path.stat() | os.stat() | 获得文件属性 |
PurePath.is_absolute() | os.path.isabs() | 判断是否为绝对路径 |
PurePath.joinpath() | os.path.join() | 连接目录与文件名或目录 |
PurePath.name | os.path.basename() | 返回文件名 |
PurePath.parent | os.path.dirname() | 返回文件路径 |
Path.samefile() | os.path.samefile() | 判断两个路径是否相同 |
PurePath.suffix | os.path.splitext() | 分离文件名和扩展名 |
3 UNIX 和 Windows 风格路径区别
UNIX 风格的路径和 Windows 风格路径的主要区别在于根路径和路径分隔符,
- UNIX 风格路径的根路径是斜杠(/),而 Windows 风格路径的根路径是盘符(c:)
- UNIX 风格的路径的分隔符是斜杠(/),而 Windows 风格路径的分隔符是反斜杠(\\)
以上是关于python 笔记:Pathlib的主要内容,如果未能解决你的问题,请参考以下文章