本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!
我们在编写代码的时候经常会和文件系统做交互,但是 os.path
属于比较基础的库,我们在提取文件夹的名字、后缀或者父文件名字的时候需要经常用到 split
,切割之后需要对得到的 list
进行提取,有时候得到的效果不是我们需要的,而且代码代码写得也不是特别的友好,这里我们介绍 Python3
自带的库 Path
,可以让我们使用更少的代码但是与之而来的是更高的效率。
我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!
该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径。
在一些用例中纯路径很有用,例如:
如果你想要在 Unix 设备上操作 Windows 路径(或者相反)。你不应在 Unix 上实例化一个 WindowsPath,但是你可以实例化 PureWindowsPath。
你只想操作路径但不想实际访问操作系统。在这种情况下,实例化一个纯路径是有用的,因为它们没有任何访问操作系统的操作。
方法名 : .name
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_file_name = path_str.name
print(path_file_name)
输出
demo.py
方法名 : .parent
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_parent_path = path_str.parent
print(path_parent_path)
输出
\user\HinGwenWoong
方法名 : .suffix
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_suffix = path_str.suffix
print(path_suffix)
输出
.py
方法名 : .stem
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_only_name = path_str.stem
print(path_only_name )
输出
demo
方法名 : .with_suffix
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_suffix = path_str.with_suffix(".json")
print(path_suffix)
输出
\user\HinGwenWoong\demo.json
方法名 : .iterdir()
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/logs")
for path in path_str.iterdir():
print(path)
输出
/user/HinGwenWoong/log/20210517.log
/user/HinGwenWoong/log/20210518.log
/user/HinGwenWoong/log/20210519.log
/user/HinGwenWoong/log/20210524.log
/user/HinGwenWoong/log/20210525.log
方法名 : .joinpath
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/")
path_str_join = path_str.joinpath("demo.py")
print(path_str_join)
输出
\user\HinGwenWoong\demo.py
方法名 : is_absolute()
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.is_absolute())
输出
True
方法名 : is_dir()
、 is_file()
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.is_dir())
print(path_str.is_file())
输出
True
False
方法名 : .exists()
from pathlib import Path
path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.exists())
输出
True
方法名 : .glob
from pathlib import Path
path_str = Path(r"/user/HinGwenWoong/scripts")
print(path_str.glob('*.py'))
输出
[PosixPath('/user/HinGwenWoong/scripts/demo_1.py'),
PosixPath('/user/HinGwenWoong/scripts/demo_2.py')]
以上就是我经常使用 Path 的方法,这可以让您操作文件路径的时候更少的代码并且更高效。
我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!
作者:HinGwenWoong
一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
CSDN: HinGwenWoong
原文链接:Python | Path 让文件路径提取变得简单(含代码)
文章浏览阅读2.4w次。python numpy大数组时出现MemoryError的解决方法PC有16GB内存,但只用了5GB·python就报MemoryError,很是疑惑。·google后发现下面文章。才意识到是由于我安装了Anacoda的32位版本,卸载32位->安装64位版本后问题解决。https://blog.csdn.net/weixin_39750084/article/details/815..._numpy.core._exceptions._arraymemoryerror: unable to allocate 256. kib for an
文章浏览阅读194次。SAN和NAS存储一般都具备2个评价指标:IOPS和带宽(throughput),两个指标互相独立又相互关联。体现存储系统性能的最主要指标是IOPS。IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),指的是系统在单位时间内能处理的最大的I/O频度,是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I..._吞吐量 transfer bandwidth
文章浏览阅读2.9k次,点赞2次,收藏2次。方法千千万,可能你会觉得我这种记忆方式没必要,新手勿喷。例如随机生成5-10之间的数代码如下:(5 + Math.random()*5);随机生成出来的数为5.00到9.99之间,因为int是取整所以小数点后面都不要也就是5到9。公式如下:最小范围+Math.random()*(最大范围-最小范围)例如:87到92之间87+Math.random()*(92..._random如何记忆
文章浏览阅读2.7w次,点赞39次,收藏107次。更正:上篇末尾关于运行汇流程序的部分,在“STEHE.stnloc”文件中需要修改的部分应改为NONE而非none。希望没有太多人因此造成困扰…VIC的输入文件都有啥其实VIC及其汇流程序真正的交互方式都是通过读入文件完成的。它们都要求有一个文件存储各种设定参数,包括运行的日期时间、运行模式以及所需的各种数据文件的位置。 上一篇中启动VIC的命令./vicNl -g /home/.../globa_vic global parameter file
文章浏览阅读468次。最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识。1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server。大家使用 mstsc.exe 远程桌面登录windows server时,退出时,99.99%的人会直接关闭 mstsc.exe 窗口,而不会点击开始--->退出。导致的问题是,登录用户已经提出了,但..._修改windows maxdisconnection time为默认值
文章浏览阅读3.4w次,点赞2次,收藏17次。Table of Contents1. 在线广告综述1.1. 广告的定义与目的1.2. 在线广告类型1.3. 在线广告简史1.4. 广告有效性原理1.5. 在线广告相关行业协会2. 计算广告基础2.1. 在线广告的技术特点2.2. 计算广告核心问题2.2.1. 在线广告技术课题2.2.2. 在线广告计费模式2.3. 计算广告系统架构2.4. 基础知识准备_高h之交换小敏系列
文章浏览阅读726次。1、什么是兼容性测试?兼容性测试侧重哪些方面?参考答案:兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什..._软件测试基础知识大全
文章浏览阅读1.2w次,点赞2次,收藏6次。Junit测试案例执行按顺序执行有3种方法可以实现,缺省地,testcase执行的时候不是按函数编写顺序执行的。1、数字编码法testcase的函数名尾数为数字,则方法会按字母顺序、数字顺序执行。比如有testFirst1, testFirst2, testFirst3三个测试案例,则三个案例的执行顺序为:testFirst1>testFirst2>testFirst3如果还有三个_junit test执行顺序
文章浏览阅读5.8k次。出现这个错误是我在开发手机网站支付的时候出现的,由于之前的支付功能是即时到账,后来改为了手机网站支付宝。主要是由没有将AlipaySubmit中的buildRequestMysign方法中的RSA.sign(prestr, AlipayConfig.private_key, AlipayConfig.input_charset);中的private_key没有由原先的商户的私钥改为手机网站支付_ioexception : derinputstream.getlength(): lengthtag=26, too big.
文章浏览阅读193次。1:java.lang.NoSuchMethodError: scala.Product.initinitinit(Lscala/Product;)V设置对应的scala版本解答:jar包引用和运行时的scala版本不同,如果在开发过程遇到修改了环境配置还有这个问题,应该关闭所有idea窗口再打开才能生效。..._flink no root exception
文章浏览阅读993次。背景2019年3月15日nacos-server发布了1.0.0-RC1版本,为官方第一个release版本,基本可以用于小规模生产环境,以下是我从0.8.0升级到1.0.0-RC1的记录。环境mysql8.0(1.0默认支持8.x版本的mysql了)nacos-all 1.0.0.RC1spring-cloud-alibaba: 0.2.1.RELEASE覆盖nacos-clien..._naocs-0.8.0的client升级到nacos-1.0.0.rc1
文章浏览阅读182次。当今世界,人们的计算机都相互连接,互联互通。小到你的家庭局域网(LAN),大到最大的一个被我们称为互联网。当你管理一台联网的计算机时,你就是在管理最关键的组件之一。由于大多数开发出的应用程序都基于网络,网络就连接起了这些关键点。这就是为什么我们需要网络监控工具。ntop 是最好的网络监控工具之一。来自维基百科的 知识“ntop是一个网络探测器,它以与top显示进程般类似的方式显示网络..._linux 安装 pong 工具监听java