Python处理文件系统路径,pathlib库使用
off999 2024-10-26 12:08 23 浏览 0 评论
pathlib是Python3.4及以后版本中的一个内置类库,它提供了一种简单而直观的方式来处理文件系统路径,同时也能够轻松地处理各种不同类型的路径。
在本教程中,我们将介绍如何使用pathlib类库来操作文件路径。
创建一个Path对象
pathlib库中的主要对象是Path类,它表示文件或目录的路径。要使用Path类,您需要首先创建一个Path对象。
from pathlib import Path
# 绝对路径
path = Path('/usr/bin/python3')
# 相对路径
path = Path('file.txt')
上面的代码演示了如何使用Path类来创建一个绝对路径和一个相对路径的对象。
获取路径信息
Path对象提供了一些方法来获取路径的信息。下面是一些最常用的方法:
- name: 返回路径的最后一个组成部分的名称
- parent: 返回路径的上一级目录
- parts: 返回路径中的所有部分
- exists(): 检查路径是否存在
- is_dir(): 检查路径是否为一个目录
- is_file(): 检查路径是否为一个文件
from pathlib import Path
path = Path('/usr/bin/python3')
print(path.name) # python3
print(path.parent) # /usr/bin
print(path.parts) # ('/', 'usr', 'bin', 'python3')
if path.exists():
if path.is_dir():
print('Path is a directory.')
elif path.is_file():
print('Path is a file.')
else:
print('Path does not exist.')
上面的代码将返回python3作为路径的名称,/usr/bin作为路径的上级目录,('/', 'usr', 'bin', 'python3')作为路径的所有部分。
操作路径
Path对象还提供了一些方法来操作路径。下面是一些最常用的方法:
- joinpath(): 连接两个或多个路径组件,并返回一个新的Path对象
- with_suffix(): 更改路径的文件扩展名
- resolve(): 返回绝对路径
- relative_to(): 返回相对路径
from pathlib import Path
path = Path('/usr/bin')
new_path = path.joinpath('python3')
print(new_path) # /usr/bin/python3
new_path = new_path.with_suffix('.txt')
print(new_path) # /usr/bin/python3.txt
absolute_path = new_path.resolve()
print(absolute_path) # /usr/bin/python3.txt
relative_path = absolute_path.relative_to('/usr')
print(relative_path) # bin/python3.txt
上面的代码演示了如何使用Path对象的方法来连接路径、更改文件扩展名、获取绝对路径和相对路径。
遍历目录
Path对象还提供了一些方法来遍历目录。下面是一些最常用的方法:
- glob(): 返回一个生成器,该生成器按照通配符模式返回所有匹配的文件和目录
- iterdir(): 返回一个迭代器,该迭代器包含目录中的所有条目
- rglob(): 返回一个生成器,该生成器按照通配符模式递归返回所有匹配的文件和目录
from pathlib import Path
path = Path('/usr/bin')
# 遍历目录
for entry in path.iterdir():
if entry.is_file():
print(f'File: {entry.name}')
elif entry.is_dir():
print(f'Directory: {entry.name}')
# 遍历目录及其子目录
for entry in path.rglob('*'):
if entry.is_file():
print(f'File: {entry.name}')
elif entry.is_dir():
print(f'Directory: {entry.name}')
上面的代码演示了如何使用Path对象的方法来遍历目录和子目录中的所有文件和目录。
创建、复制和删除文件/目录
Path对象还提供了一些方法来创建、复制和删除文件和目录。下面是一些最常用的方法:
- mkdir(): 创建一个新目录
- mkdir(parents=True, exist_ok=True): 创建一个新目录,如果父目录不存在则递归创建
- touch(): 创建一个新文件
- rename(): 重命名文件或目录
- unlink(): 删除文件
- rmdir(): 删除空目录
- rmtree(): 递归删除目录及其所有内容
from pathlib import Path
path = Path('file.txt')
# 创建一个新文件
path.touch()
# 重命名文件
path.rename('new_file.txt')
# 删除文件
path.unlink()
# 创建一个新目录
path.mkdir()
# 创建一个新目录,如果父目录不存在则递归创建
path = Path('path/to/new/directory')
path.mkdir(parents=True, exist_ok=True)
# 删除空目录
path.rmdir()
# 递归删除目录及其所有内容
path = Path('path/to/directory')
path.rmdir()
上面的代码演示了如何使用Path对象的方法来创建、复制和删除文件和目录。
总结
在本教程中,我们介绍了如何使用pathlib类库来处理文件系统路径。我们学习了如何创建Path对象、获取路径信息、操作路径、遍历目录、创建、复制和删除文件/目录。pathlib类库提供了一种更加简单和直观的方式来处理文件系统路径,并且它是Python3.4及以后版本中的一个内置类库,因此无需安装即可使用。
相关推荐
- 第九章:Python文件操作与输入输出
-
9.1文件的基本操作9.1.1打开文件理论知识:在Python中,使用open()函数来打开文件。open()函数接受两个主要参数:文件名和打开模式。打开模式决定了文件如何被使用,常见的模式有:&...
- Python的文件处理
-
一、文件处理的流程1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件示例:d=open('abc')data1=d.read()pri...
- Python处理文本的25个经典操作
-
Python处理文本的优势主要体现在其简洁性、功能强大和灵活性。具体来说,Python提供了丰富的库和工具,使得对文件的读写、处理变得轻而易举。简洁的文件操作接口Python通过内置的open()函数...
- Python学不会来打我(84)python复制文件操作总结
-
上一篇文章我们分享了python读写文件的操作,主要用到了open()、read()、write()等方法。这一次是在文件读写的基础之上,我们分享文件的复制。#python##python自学##...
- python 文件操作
-
1.检查目录/文件使用exists()方法来检查是否存在特定路径。如果存在,返回True;如果不存在,则返回False。此功能在os和pathlib模块中均可用,各自的用法如下。#os模块中e...
- 《文件操作(读写文件)》
-
一、文件操作基础1.open()函数核心语法file=open("filename.txt",mode="r",encoding="utf-8"...
- 栋察宇宙(二十一):Python 文件操作全解析
-
分享乐趣,传播快乐,增长见识,留下美好。亲爱的您,这里是LearingYard学苑!今天小编为大家带来“Python文件操作全解析”欢迎您的访问!Sharethefun,spreadthe...
- 值得学习练手的70个Python项目(附代码),太实用了
-
Python丰富的开发生态是它的一大优势,各种第三方库、框架和代码,都是前人造好的“轮子”,能够完成很多操作,让你的开发事半功倍。下面就给大家介绍70个通过Python构建的项目,以此来学习Pytho...
- python图形化编程:猜数字的游戏
-
importrandomnum=random.randint(1,500)running=Truetimes=0##总的次数fromtkinterimport*##导入所有tki...
- 一文讲清Python Flask的Web编程知识
-
刚入坑Python做Web开发的新手,还在被配置臃肿、启动繁琐折磨?Flask这轻量级框架最近又火出圈,凭5行代码启动Web服务的极致简洁,让90后程序员小张直呼真香——毕竟他刚用这招把部署时间从半小...
- 用python 编写一个hello,world
-
第一种:交互式运行一个hello,world程序:这是写python的第一步,也是学习各类语言的第一步,就是用这种语言写一个hello,world程序.第一步,打开命令行窗口,输入python,第二步...
- python编程:如何使用python代码绘制出哪些常见的机器学习图像?
-
专栏推荐绘图的变量单变量查看单变量最方便的无疑是displot()函数,默认绘制一个直方图,并你核密度估计(KDE)sns.set(color_codes=True)np.random.seed(su...
- 如何编写快速且更惯用的 Python 代码
-
Python因其可读性而受到称赞。这使它成为一种很好的第一语言,也是脚本和原型设计的流行选择。在这篇文章中,我们将研究一些可以使您的Python代码更具可读性和惯用性的技术。我不仅仅是pyt...
- Python函数式编程的详细分析(代码示例)
-
本篇文章给大家带来的内容是关于Python函数式编程的详细分析(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。FunctionalProgramming,函数式编程。Py...
- 编程小白学做题:Python 的经典编程题及详解,附代码和注释(七)
-
适合Python3+的6道编程练习题(附详解)1.检查字符串是否以指定子串开头题目描述:判断字符串是否以给定子串开头(如"helloworld"以"hello&...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)