Pathlib操作文件IN Python
系列文章目录
文章目录
-
目录
系列文章目录
文章目录
前言
一、Pathlib是什么?
二、使用步骤
前言

pathlib 是 Python 标准库中用于操作文件和目录路径的模块,自 Python 3.4 起引入。它提供了一种面向对象的方式处理路径,使路径操作更加简洁、可读和跨平台。pathlib 取代了传统模块如 os.path 和部分 shutil 的功能,成为推荐的路径操作工具。
一、Pathlib是什么?
pathlib 是 Python 标准库中用于操作文件和目录路径的模块,自 Python 3.4 起引入。它提供了一种面向对象的方式处理路径,使路径操作更加简洁、可读和跨平台。pathlib 取代了传统模块如 os.path 和部分 shutil 的功能,成为推荐的路径操作工具。
二、使用步骤
- 面向对象:通过类和方法操作路径,避免字符串拼接。
- 跨平台:自动处理 Windows 和 POSIX(Linux/Unix/macOS)路径的差异。
- 功能丰富:支持路径解析、文件操作、目录管理等多种功能。
- 高可读性:语法简洁直观,易于理解和维护。
- 支持类型化路径:
Path:用于处理通用路径。PurePath:只处理路径字符串,不访问实际文件系统。
创建路径对象
from pathlib import Path# 创建一个路径对象
p = Path("/home/user/example.txt")
print(p) # 输出: /home/user/example.txt
动态构建路径
from pathlib import Pathbase = Path("/home/user")
file_path = base / "documents" / "file.txt" # 拼接路径
print(file_path) # 输出: /home/user/documents/file.txt
检查路径类型
from pathlib import Pathp = Path("/home/user/example.txt")
print(p.exists()) # 路径是否存在
print(p.is_file()) # 是否是文件
print(p.is_dir()) # 是否是目录
获取路径信息
p = Path("/home/user/example.txt")
print(p.name) # 文件名: example.txt
print(p.stem) # 文件名不含后缀: example
print(p.suffix) # 文件后缀: .txt
print(p.parent) # 父目录: /home/user
print(p.parts) # 路径各部分: ('/', 'home', 'user', 'example.txt')
文件与目录操作
from pathlib import Path# 创建目录
dir_path = Path("/home/user/new_folder")
dir_path.mkdir(parents=True, exist_ok=True) # 递归创建目录# 写入文件
file_path = dir_path / "example.txt"
file_path.write_text("Hello, pathlib!", encoding="utf-8")# 读取文件
content = file_path.read_text(encoding="utf-8")
print(content) # 输出: Hello, pathlib!# 删除文件
file_path.unlink()# 删除目录(仅删除空目录)
dir_path.rmdir()
遍历目录
from pathlib import Pathdir_path = Path("/home/user")
for item in dir_path.iterdir():print(item) # 列出目录中的所有文件和子目录
匹配文件
from pathlib import Pathdir_path = Path("/home/user")
# 匹配 .txt 文件
for txt_file in dir_path.glob("*.txt"):print(txt_file)# 递归匹配 .txt 文件
for txt_file in dir_path.rglob("*.txt"):print(txt_file)
| 功能 | os.path | pathlib |
|---|---|---|
| 面向对象支持 | 否 | 是 |
| 跨平台支持 | 需要手动处理路径分隔符 | 自动适配 |
| 路径拼接 | 使用 os.path.join() | 使用 / 运算符 |
| 代码可读性 | 较低 | 高 |
| 文件操作支持 | 依赖其他模块(如 os 和 shutil) | 内置方法,如 write_text() 等 |
相关文章:
Pathlib操作文件IN Python
系列文章目录 文章目录 目录 系列文章目录 文章目录 前言 一、Pathlib是什么? 二、使用步骤 前言 pathlib 是 Python 标准库中用于操作文件和目录路径的模块,自 Python 3.4 起引入。它提供了一种面向对象的方式处理路径,使路径操作更加简洁、…...
AOC显示器915Sw按键失灵维修记
大家好,我是 程序员码递夫 今天给大家分享的是自己维修老古董AOC液晶显示器按键失灵的的过程,实属DIY记录。 1、引子 家里有台老古董的19寸AOC液晶显示器(型号915Sw), 一直作为我的副显示器陪伴着左右,显示还正常&a…...
霍曼转移方法介绍
霍曼转移方法介绍 背景 在航天工程中,轨道转移是指航天器从一个轨道移动到另一个轨道的过程。为了高效利用燃料并缩短转移时间,科学家们开发了多种轨道转移方法。其中,霍曼转移(Hohmann Transfer)因其燃料效率高、计…...
我的创作之路:机缘、收获、日常与未来的憧憬
目录 前言机缘收获 日常成就一个优化后的二分查找实现 憧憬 前言 每个人的成长旅程都有它独特的轨迹,而我的这段技术创作之路,则源于一次再普通不过的项目分享。 机缘 一切的开始其实是偶然。在一次项目中,我遇到了一个棘手的问题…...
《硬件架构的艺术》笔记(六):处理字节顺序
介绍 本章主要介绍字节顺序的的基本规则。(感觉偏软件了,不知道为啥那么会放进《硬件架构的艺术》这本书)。 定义 字节顺序定义数据在计算机系统中的存储格式,描述存储器中的MSB和LSB的位置。对于数据始终以32位形式保存在存储器…...
AddIPAddress添加临时IP后,socket bind失败
问题描述 在Win10\Win11下使用addIPAddress添加临时IP成功后,立即创建socket,bind失败 if(!m_socket->bind(QHostAddress(m_localIP), listenPort)) {qCritical() << QString("bind error %1").arg(m_socket->errorString());re…...
关于IDE的相关知识之一【使用技巧】
成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于ide使用技巧的相关内容! 关于…...
线性代数在人工智能领域中的实践
一、机器学习中的线性代数应用 在机器学习中,线性代数主要用于构建和训练各种模型,如线性回归、逻辑回归、支持向量机等。这些模型在数据的特征提取、降维处理以及分类等方面发挥了重要作用。 线性回归:线性回归是最简单的机器学习算法之一…...
图片生成视频-右进
右侧进入 ffmpeg -loop 1 -i image.jpg -f lavfi -i colorcblack:s1280x720:d20 -filter_complex "[1:v]formatrgba[bg];[0:v]formatrgba,scale1280:720[img];[bg][img]overlayxif(lt(t,3),W,if(lt(t,8),W-(t-3)*W/5,0)):y(H-h)/2:enablegte(t,3)" -c:v libx264 -t 2…...
3、集线器、交换机、路由器、ip的关系。
集线器、交换机、路由器三者的关系 1、集线器2、交换机(每个交换机是不同的广播域,ip地址起到划分广播域的作用)3、 路由器4、ip地址 所有图片和资料均来源于B站:网络安全收藏家 1、集线器 一开始两台电脑通信就需要网线就可以&a…...
w~视觉~合集25
我自己的原文哦~ https://blog.51cto.com/whaosoft/12627822 #Mean Shift 简单的介绍 Mean Shift 的数学原理和代码实现,基于均值漂移法 Mean Shift 的图像分割 Mean Shift 算法简介 从分割到聚类 对于图像分割算法,一个视角就是将图像中的某些点集分为一类&a…...
Applicaiton配置文件
server:port: 8080 # 配置 Spring Boot 启动端口,默认为 8080mybatis-plus:mapper-locations: classpath:com/xtl/mapper/xml/*.xml # 指定 MyBatis Mapper XML 文件的路径,确保 MyBatis 能够正确加载 Mapper 文件global-config:db-config:id-type: au…...
(已解决)wps无法加载此加载项程序mathpage.wll
今天,在安装Mathtype的时候遇到了点问题,如图所示 尝试了网上的方法,将C:\Users\Liai_\AppData\Roaming\Microsoft\Word\STARTUP路径中的替换为32位的Mathtype加载项。但此时,word又出现了问题 后来知道了,这是因为64位…...
ubity3D基础
Unity是一个流行的游戏开发引擎,它使用C#作为其主要的编程语言。以下是一些Unity中C#编程的基础概念: • Unity编辑器: • Unity编辑器是Unity游戏引擎的核心,提供了一个可视化界面,用于创建和管理游戏项目。 • C#脚本…...
Python2和Python3的区别
和python 2.x相比,python 3.x版本在语句输出、编码、运算和异常等方面做出了一些调整,我们这篇文章就对这些调整做一个简单的介绍。 Python3.x print函数代替了print语句 在python 2.x中,输出数据使用的是print语句,例如ÿ…...
Spring框架整合单元测试
目录 一、配置文件方式 1.导入依赖 2.编写类和方法 3.配置文件applicationContext-test.xml 4.测试类 5.运行结果 二、全注解方式 1.编写类和方法 2.配置类 3.测试类 4.运行结果 每次进行单元测试的时候,都需要编写创建工厂,加载配置文件等相关…...
docker-mysql
一、创建mysql 1、docker run --name mysql8.0-container -e MYSQL_ROOT_PASSWORDmy-secret-pw -d -p 3306:3306 mysql:8.0 参数解释: --name mysql8.0-container:指定容器的名称为mysql8.0-container。 -e MYSQL_ROOT_PASSWORDmy-secret-pw:…...
Java程序基础⑤Java数组的定义和使用+引用的概念
目录 1. Java数组的基本概念 1.1 数组的定义 1.2 数组存在的意义 1.3 数组的使用 1.4 二维数组 2. 引用类型JVM的内存分布 2.1 JVM的内存分布 2.2 基本数据类型和引用型数据类型的区别 2.3 引用注意事项 2.4 传值传递 3. 数组总结和应用场景 3.1 一维数组和二维数组…...
electron主进程和渲染进程之间的通信
主进程 (main.js) const { app, BrowserWindow, ipcMain } require("electron"); const path require("node:path"); // 导入fs模块 const fs require("fs");const createWindow () > {const win new BrowserWindow({width: 800,height…...
uniapp 安卓和ios震动方法,支持息屏和后台震动,ios和安卓均通过测试
最近使用uniapp开发震动功能,发现uniapp提供的 uni.vibrateLong()的方法震动比较弱,而且不支持息屏和后台震动。plus.ios.importClass("UIImpactFeedbackGenerator")是在网上看到的,这个震动也比较弱,ios也不支持息屏和…...
RLT火了,但拧螺丝的真问题真是它解决的吗?
先说结论RLT的核心价值在于“分工”:让笨重但泛化好的VLA做感知和粗规划,让轻快但专精的小网络做在线微调,这是一种计算和样本成本的折中架构。它没有解决数据收集的根本成本,而是优化了“数据利用率”和“策略更新效率”…...
i.MX6ULL开发板无线SSH环境搭建指南
嵌入式开发板远程登录环境搭建指南1. 项目概述本技术文档详细记录了在基于i.MX6ULL处理器的嵌入式Linux开发板上搭建完整远程登录环境的实现方案。该方案包含三个核心组件:WiFi网络驱动移植、无线网络配置工具移植以及SSH服务部署。2. 硬件环境搭建2.1 WiFi模块选型…...
Win11装Anaconda总卡住?试试这个Miniconda曲线救国法(附清华源配置)
Win11装Anaconda总卡住?试试这个Miniconda曲线救国法(附清华源配置) 最近在Windows 11上安装Anaconda时,不少开发者都遇到了进度条卡死或包提取失败的困扰。这个问题看似简单,却让很多数据科学初学者和Python开发者头疼…...
CentOS7系统维护终止后YUM源失效的解决方案
1. CentOS7维护终止带来的YUM源危机 去年夏天我给客户部署的CentOS7服务器突然无法安装新软件,屏幕上不断弹出"无法解析主机"的错误。这才意识到官方已经停止维护,默认的YUM源就像突然关门的超市,所有货架都空了。对于仍在使用Cent…...
GraphRAG大揭秘:微软如何用知识图谱让AI问答更精准,效率翻倍!
微软推出的GraphRAG通过引入知识图谱技术,有效解决了传统RAG在信息连接和归纳总结上的不足。GraphRAG利用大模型构建知识图谱,实现实体和关系的结构化表示,显著提升答案的准确度与完整性,并支持多跳推理。文章详细介绍了知识图谱的…...
Ubuntu22.04桌面版root登录避坑指南:从密码设置到SSH远程连接完整流程
Ubuntu 22.04桌面版root权限全流程实战:从密码安全到SSH调优 刚接触Ubuntu桌面环境时,很多开发者会遇到这样的困境:图形界面操作需要频繁输入sudo密码,而某些系统级配置又必须使用root账户。本文将带你用工程师思维解决这个痛点&a…...
Wan2.2-I2V-A14B效果展示:RTX4090D优化版生成高清视频作品集,开箱即用
Wan2.2-I2V-A14B效果展示:RTX4090D优化版生成高清视频作品集,开箱即用 1. 惊艳效果预览:专业级视频生成能力 当第一次看到Wan2.2-I2V-A14B生成的视频作品时,很难相信这些画面完全由AI从文字描述创造。这款专为RTX4090D优化的文生…...
别再死磕点云了!用DeepSDF和PyTorch实现高质量3D模型补全(附代码)
突破传统3D补全瓶颈:基于DeepSDF的智能修复实战指南 当你面对残缺的3D扫描数据时,是否厌倦了传统点云方法带来的锯齿状表面和模糊细节?在文物数字化修复或游戏资产重建中,我们常常遇到这样的困境:珍贵的雕塑缺失了关键…...
3大核心功能打造专业级开源服装设计解决方案
3大核心功能打造专业级开源服装设计解决方案 【免费下载链接】Seamly2D Open source patternmaking software to democratize fashion. 项目地址: https://gitcode.com/gh_mirrors/se/Seamly2D Seamly2D作为一款开源服装制版软件,通过参数化设计、精确测量管…...
OpenVoice语音合成技术全解析:从痛点突破到多场景落地实践
OpenVoice语音合成技术全解析:从痛点突破到多场景落地实践 【免费下载链接】OpenVoice 项目是MyShell AI开源的即时语音克隆技术OpenVoice,旨在提供一种能够快速从少量语音样本中准确复制人类声音特征,并实现多种语言及语音风格转换的解决方案…...
