from pathlib import path_华丽的蜕变-使用Pathlib模块,文件操作So Easy!

2023-11-18

更多精彩内容,请关注微信公众号:python学习开发。

前言

大多人处理文件用的最多的还是os模快吧,比如下面这样的操作

>>> path.rsplit('', maxsplit=1)[0]

或者写出下面这样长长的代码

>>> os.path.isfile(os.path.join(os.path.expanduser('~'), 'realpython.txt'))

在本教程中,你将了解如何使用pathlib模块操作目录和文件的名称。 学习如何读取和写入文件,拼接路径和操作底层文件系统的新方法,以及如何列出文件并迭代它们的一些示例。 使用pathlib模块,可以使代码使用优雅,可读和Pythonic代码重写上面的两个示例,如:

>>> path.parent
>>> (pathlib.Path.home() / 'realpython.txt').is_file()

Python文件路径处理问题

由于许多不同的原因,使用文件和与文件系统交互很重要。 最简单的情况可能只涉及读取或写入文件,但有时候会有更复杂的任务。 也许你需要列出给定类型的目录中的所有文件,查找给定文件的父目录,或者创建一个尚不存在的唯一文件名。

一般情况,Python使用常规文本字符串表示文件路径。 一般在使用os,glob和shutil等库的时候会使用到路径拼接的操作,使用os模块拼接起来显得略显复杂,以下示例仅需要三个import语句来将所有文本文件移动到归档目录:

import glob
import os
import shutil

for file_name in glob.glob('*.txt'):
    new_path = os.path.join('archive', file_name)
    shutil.move(file_name, new_path)

使用常规的字符串去拼接路径是可以的,但是由于不同的操作系统使用的分隔符不同,这样就容易出现问题,所以一般我们使用最多的还是使用os.path.join()。

Python 3.4中引入了pathlib模块(PEP 428)再一次的优化了路径的拼接。使用pathlib库的Path方法,可以将一个普通的字符串转换为pathlib.Path对象类型的路径。

早期,其他软件包仍然使用字符串作为文件路径,但从Python 3.6开始,pathlib模块在整个标准库中得到支持,部分原因是由于增加了文件系统路径协议。 如果你坚持使用传统的Python,那么Python 2也有一个可用的向后移植。

ok,说了那么多下面让我们看看pathlib如何在实践中发挥作用。

创建路径

这里我们首先要知道两个用法,先看代码:

from pathlib import Path

你真正需要知道的是pathlib.Path类。 创建路径有几种不同的方式。 首先,有类方法,如.cwd(当前工作目录)和.h

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

from pathlib import path_华丽的蜕变-使用Pathlib模块,文件操作So Easy! 的相关文章

  • uniapp之uni.navigateBack返回携带参数

    代码 let pages getCurrentPages 获取所有页面栈实例列表 let nowPage pages pages length 1 当前页页面实例 let prevPage pages pages length 2 上一页页
  • k8s挂载目录_k8s学习之存储卷volume详解

    1 案例准备 存储卷以MariaDb来演示 其中每个节点需要准备如下镜像 docker pull mariadb 10 5 2 编写部署mariadb的资源文件 apiVersion apps v1kind Deploymentmetada
  • 【C++】运算符重载实现分数类的四则运算

    题目 定义一个分数类 Fraction 该类具有分子 分母两个成员属性 编写程序完成以下功能 定义合适的构造函数 定义前自增 后自增运算符重载 完成分子 1操作 定义分数加减乘除四则运算的运算符重载函数 Fraction h头文件代码 pr
  • SpringSecurity进阶:OAuth2.0详解

    OAuth2是什么 OAuth是一个为了方便用户登入而使用的授权流程 他的优点是不需要向第三方平台暴露我们的用户名和密码 而是使用授权服务器颁发短期的token和效验token的方式开放部分资源给第三方平台 OAuth是一个授权协议不是认证
  • css解决浏览器记住密码后input框的背景色为淡黄色的代码

    input webkit autofill textarea webkit autofill select webkit autofill webkit text fill color ededed important webkit box
  • 100-The 3n+1 problem

    100 The 3n 1 problem Time limit 3 000 seconds Problems in Computer Science are often classified as belonging to a certai
  • SpringBoot引入本地jar包,引用sdk

    1 引入本地jar包并通过maven打包成jar包 第一步 创建lib包 将所需的本地jar包导入 第二步 在pom文件中引导路径
  • 【开发工具】Python解释器的下载和安装(windows系统)

    Python解释器的下载和安装目录 一 Python解释器种类 二 CPython解释器的下载 三 CPython解释器的安装 四 验证解释器是否安装成功 一 Python解释器种类 CPython C语 开发的解释器 官 应 泛的解释器
  • HTML常用标签--整理篇

    HTML常用标签 文章目录 HTML常用标签 文本标签 HTML格式化标签 HTML图像标签 HTML表格标签 HTML表单标签 文本标签 常 文本标签如下
  • JaveWeb-12JDBC

    目录 一 JDBC 1 什么是JDBC 2 JDBC编程步骤 1 装载相应数据库的JDBC驱动并进行初始化 2 建立JDBC和数据库之间的Connection连接 3 创建Statement或者PreparedStatement接口 执行S
  • 二叉排序树(二叉搜索树)的时间复杂度&空间复杂度

    二叉排序树又称二叉查找树 二叉搜索树 它或是一棵空的二叉树 或是具有下列性质的二叉树 若它的左子树不空 则左子树上所有节点的值均小于根节点的值 若它的右子树不空 则右子树上所有节点的值均大于根节点的值 它的左右子树也都是二叉排序树 如果二叉
  • Redis为什么快

    Redis有多快 Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库 由C语言编写 官方提供的数据是可以达到100000 的QPS 每秒内查询次数 这个数据不比采用单进程多线程的同样基于内存的 KV 数据库 Memcach
  • [数据库] MySQL基础知识之日期判断及添加排序序号

    这篇文章主要记录MySQL中遇到的几个基础问题 希望文章对你有所帮助 包括 1 日期类型的判断 2 decode函数的替代方法 3 查询语句中添加一个排序的序号 4 子函数查询select a 1 日期类型判断 日期类型主要是 DATE 显
  • Python中if __name__ == ‘__main__‘:

    也看了一些别人的总结 这里就结合其他文章谈谈自己的理解 Python中 if name main 我刚开始看的时候就直接把他当成了一个项目运行的开始 至于为什么也没有仔细研究 后来看得多了 就研究了一下 name 是每一个python文件的
  • win10安装Ubuntu20.04虚拟机

    打开VMware Workstation的界面为下方的画面 注意第一次安装的时候我的计算机中是没有系统的 点击创建新的虚拟机会出现下方界面 选择自定义然后点击下一步 继续点击下一步选择稍后安装操作系统 继续点击下一步 继续下一步选择安装位置
  • 二级下拉菜单布局(纵向、横向)

    一级菜单 在ul列表内建立li元素并清除默认样式 让所有li元素左浮动并清除浮动 DOM中文档结构如下 ul class clearfix li a href 1 a li li a href 2 a li li a href 3 a li
  • Jupyter远程配置

    安装Jupyter pip install jupyter 生成默认配置文件 jupyter notebook generate config 生成密钥 python gt gt gt from notebook auth import p
  • 【React】单页面应用限制多开登录

    react 单页面应用限制多开登录 情景 测试小姐姐提了一个 BUG 在同一浏览器中打开两个页面 两个页面分别登录不同的账号 A 页面先登录A B 页面再登录B 此时回到 A 页面 交互时账号数据应该刷新为 B 登录的账号 分析 这个问题
  • 怎么设置权限?后台管理系统中的功能权限和数据权限设置

    一 功能级 页面级 权限 不同的用户 角色 登录到管理系统后 看到的功能不一样 思路 前端进入登录页面 前端发送请求给后端 后端验证用户名和密码是否正确 如果验证通过 需要根据用户所属的角色查他对应功能 path 响应给前端 前端接收到后端

随机推荐