详解 Python pathlib(处理文件路径)模块函数

Python的pathlib模块提供了一种面向对象的处理文件路径和目录路径的方式。它在Python 3.4及以上版本中已经内置,无需安装额外的模块。

pathlib模块主要包含了两个类:Path和PurePath。Path是操作系统上的实际路径,而PurePath则是一个纯粹的路径,不考虑操作系统的差异。下面我们来详细讲解一下这两个类的用法。

Path类

Path类是pathlib模块的主要类,用于表示一个操作系统上的路径。通过Path类的实例,我们可以进行文件和目录的操作,比如创建、删除、重命名、遍历等等。

下面是一些常用的Path类的方法:

  • Path.cwd():获取当前工作目录的Path对象
  • Path.home():获取当前用户的主目录的Path对象
  • Path.exists():判断当前路径是否存在
  • Path.is_dir():判断当前路径是否是一个目录
  • Path.is_file():判断当前路径是否是一个文件
  • Path.mkdir():创建一个目录
  • Path.rmdir():删除一个空目录
  • Path.unlink():删除一个文件
  • Path.rename():重命名一个文件或目录
  • Path.glob():查找匹配的文件或目录

下面是一些具体的示例:

import pathlib

# 获取当前工作目录
path = pathlib.Path.cwd()
print(path)

# 获取当前用户主目录
home_path = pathlib.Path.home()
print(home_path)

# 判断当前路径是否存在
print(path.exists())

# 判断当前路径是否是一个目录
print(path.is_dir())

# 判断当前路径是否是一个文件
print(path.is_file())

# 创建一个目录
pathlib.Path("testdir").mkdir()

# 删除一个空目录
pathlib.Path("testdir").rmdir()

# 删除一个文件
pathlib.Path("test.txt").unlink()

# 重命名一个文件或目录
pathlib.Path("test.txt").rename("new_test.txt")

# 查找匹配的文件或目录
for file_path in pathlib.Path(".").glob("*.txt"):
    print(file_path)

PurePath类

PurePath类是一个纯粹的路径类,它不考虑操作系统的差异,可以用于在不同操作系统上进行路径操作。它支持的操作与Path类大致相同,只是不支持文件和目录的创建、删除、重命名等操作。

下面是一些常用的PurePath类的方法:

  • PurePath.joinpath():连接多个路径
  • PurePath.parent:获取当前路径的父路径
  • PurePath.name:获取当前路径的文件名或目录名
  • PurePath.suffix:获取当前路径的后缀
  • PurePath.suffixes:获取当前路径的所有后缀
  • PurePath.stem:获取当前路径的文件名或目录名
  • Path.mkdir(mode=0o777, parents=False, exist_ok=False): 创建一个目录。如果 parents=True,则会递归创建所有缺失的父目录。如果 exist_ok=True,则在目录已经存在时不会引发异常。
  • Path.rmdir(): 删除一个目录。只能删除空目录,否则会引发 OSError 异常。
  • Path.rename(target): 将路径重命名为 target,可以是新路径对象,也可以是字符串。如果 target 已经存在,则会引发 FileExistsError 异常。
  • Path.unlink(): 删除一个文件。
  • Path.resolve(): 解析路径,即将路径转换为绝对路径。如果路径不存在,则引发 FileNotFoundError 异常。
  • Path.exists(): 如果路径存在则返回 True,否则返回 False。
  • Path.is_file(): 如果路径指向一个文件则返回 True,否则返回 False。
  • Path.is_dir(): 如果路径指向一个目录则返回 True,否则返回 False。
  • Path.glob(pattern): 返回匹配指定模式的所有文件和目录的生成器。模式可以包含通配符,例如 *.txt 匹配所有扩展名为 .txt 的文件。

下面是一些使用 pathlib 模块的示例:

from pathlib import Path

# 创建文件
file_path = Path('file.txt')
file_path.touch()

# 创建目录
dir_path = Path('my_dir')
dir_path.mkdir()

# 重命名文件
file_path.rename('new_file.txt')

# 删除文件
file_path.unlink()

# 判断文件是否存在
if file_path.exists():
    print('文件存在')
else:
    print('文件不存在')

# 获取文件绝对路径
print(file_path.resolve())

# 获取所有文件和目录
for path in dir_path.glob('*'):
    print(path)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解 Python pathlib(处理文件路径)模块函数 - Python技术站

(0)
上一篇 2023年2月25日 下午9:09
下一篇 2023年2月25日 下午9:24

相关文章

  • Python 将字符串转换为代码的函数(eval和exec)详解

    在Python中,有两个内置函数,可以把一堆字符串类型的代码,转换为Python解释器能够执行的代码。这两个函数就是:eval()和exec()。 它们的作用与区别如下: eval()函数:将字符串转换为Python表达式并计算返回结果。也就是说,它一般用于计算并返回单个表达式的值,并返回执行结果。 exec()函数:用于动态执行Python代码。也就是说,…

    2023年2月21日
    00
  • 详解Python raise关键字的3种用法

    在 Python 中,raise 关键字用于手动引发异常。 通常,当程序中出现异常情况时,Python 会自动抛出相应的异常并中断程序的运行。但是,在某些情况下,程序员需要自己手动引发异常,这时就可以使用 raise 关键字。 raise 可以用来引发各种类型的异常,包括 Python 内置的异常和自定义的异常。语法格式为: raise [Exception…

    2023年2月26日
    00
  • Python 序列详解(含索引、切片)

    序列,指的是一块连续的、可存放多个值的内存空间,这些值按顺序排列,并且每个值所在的位置都有个编号(称为索引),可以通过编号访问它们。形象化地解释,你可以将它看做是一家旅店,店中的每个房间就是序列的一个个内存空间,每个房间的房间号就是索引值。我们想去哪个房间,通过房间号(索引)查找就可以。

    2023年1月15日
    30
  • Python __dict__是什么?有什么作用?

    在 Python 中,每个对象都有一个 dict 属性,它是一个字典类型,用于存储对象的所有属性和方法。当我们定义一个类时,类中定义的所有变量和方法都存储在 dict 中。在实例化对象之后,对象中的所有变量和方法都存储在其 dict 属性中。 在 Python 中,dict 属性是一个动态属性,它可以在运行时被修改。我们可以通过以下方式访问一个对象的 dic…

    2023年2月23日
    00
  • Python 赋值运算符

    赋值运算符通常是指将右侧的值赋值给左侧的变量(或者常量)中。这类的赋值运算符用等号“=”表示。 同时,赋值时也可以进行某些算数运算后,再赋值给左侧的变量。比如加减乘除运算、函数调用、逻辑运算等。这类的赋值通常需要结合其他运算符,比如+=、-=、*=、/=等等。 “=”赋值运算符 “=”是 Python 中最常见、最基本的赋值运算符,它直接将右侧的值赋值给左侧…

    Python运算符 2022年12月19日
    00
  • Python中的集合(set)是什么?

    集合是Python中的一种数据结构,与列表、元组、字典等数据结构不同,它没有重复的元素。它是一种可变的数据类型,可以在运行时动态添加或删除元素。集合的元素可以是任何类型,但通常是数字、字符串或其他不可变类型。 集合有以下几个特征: 集合中的元素是无序的,也就是说,每次创建集合时,集合中的元素的顺序可能不同。 集合中的元素是唯一的,也就是说,集合中的元素不能重…

    2023年2月14日
    00
  • Python for循环高级用法

    Python是一门简单、易学、高效的编程语言。其中的for循环语句是Python中最常用的循环语句之一。 在这篇文章中,我们将详细介绍Python的for循环及其用法。 Python for循环的基本语法 Python的for循环语法与其他编程语言中的for循环语法略有不同。在Python中,for循环语句的基本语法如下: for <variable&…

    2023年2月17日 Python流程控制
    00
  • 详解 Python 管理资源语法(with as)的作用

    with as 是 Python 中一个非常方便的语法,用于管理代码块中的资源。在程序执行完毕之后,with as 会自动释放资源,无需手动进行操作。常见的用途包括读取文件、打开网络连接、访问数据库等需要手动释放资源的场景。 with as 语法格式如下: with expression [as target(s)]: with-body 其中,expres…

    2023年2月25日
    00
合作推广
合作推广
分享本页
返回顶部