详解 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 文档属性(__doc__)的添加与查看

    在Python中,每个模块、函数、类以及方法都可以设置文档字符串,也称为docstring。 文档字符串是描述模块、函数、类或方法的文本,这些文本通常包含描述作用、参数、返回值等的详细信息。Python通过doc属性提供了访问文档字符串的方式。 doc属性是一个字符串,包含了模块、函数、类或方法的文档字符串。该属性可以通过使用dir()函数查看对象的属性列表…

    2023年2月25日
    00
  • 编译器与解释器原理

    上一章我们已经了解到,编程语言其实就是一种我们人类易于理解的程序语言。我们用这种编程语言编写的程序就称为源代码。这些源代码是通过翻译器这么个东西,被翻译成二进制指令,从而让计算机能够执行我们的指令。 那么,这其中发挥很大作用的翻译器又是怎么回事? 编译型语言与解释型语言 其实,翻译器不止一种。我们根据翻译器翻译的时机,将它分为了编译器和解释器。 相应的,编程…

    2022年10月25日
    00
  • Python 读取文件(read)函数使用方法

    在 Python 中,read() 是文件对象的一个方法,用于读取文件中的内容。read() 方法可以读取文件的全部内容,也可以读取指定长度的内容。 read() 方法的语法如下: file.read([size]) 其中,file 是文件对象,size 是要读取的数据的字节数。如果省略 size 参数,read() 方法将会读取整个文件。 read() 方…

    2023年2月25日
    00
  • Python os.path模块的7种常用函数

    Python中的os.path模块提供了一系列用于处理路径的函数,可以帮助我们方便地操作文件路径。下面我们将介绍一些常见的函数及其用法。 os.path.join():用于连接两个或多个路径名组件,返回连接后的路径名。 import os path1 = 'C:/Users' path2 = 'John' path3 …

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

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

    Python运算符 2022年12月19日
    00
  • Python 使用import导入模块的5种方式!

    在 Python 中,模块是一个包含一些已定义变量、函数、类等的文件。它提供了一种组织代码的方式,让我们可以更好地维护和重用代码。为了使用一个模块,我们需要将它导入到我们的程序中。Python 中导入模块的方法有很多种,这里我们将详细讲解 import 语句的用法。 Python 中使用 import 语句导入模块的基本语法如下: import module…

    2023年2月25日
    00
  • Python list是什么?它与数组有什么区别?

    在我们实际开发过程中,经常需要把多个数据存储到一个变量中的情况,为的是后续代码的使用。 这种可以存储多个数据的元素,在一些高级语言中称为Array(数组)。 而在Python当中,没有数组,但却加入了更为强大的list(列表)。 一般情况下,高级语言中的一个数组只能存入同一数据类型的数据,比如 int数组,只允许存入int类型的数,string数组,只允许存…

    2023年1月15日
    00
  • Python如何使用面向对象编程?

    Python是一种面向对象的编程语言,它支持面向对象编程。 Python 面向对象概念 所谓的面向对象编程(OOP),是一种编程方法,它将数据和行为封装到一个对象中。对象是一种具有属性和方法的数据结构。 Python中的面向对象编程主要涉及以下几个方面: 类和对象:类是一种抽象的概念,它描述了一类具有相同属性和方法的对象。对象是类的实例,它具有类中定义的属性…

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