【python】 pathlib常用方法总结

文章介绍了Python的pathlib模块,用于方便地创建、删除目录,列举目录下文件和子目录,以及获取文件名、后缀等信息。pathlib提供了如mkdir、rmdir、glob、rglob等方法,简化了文件路径的操作,并与os模块进行了对比。
摘要由CSDN通过智能技术生成

导入Path包

from pathlib import Path

新建目录

In : Path('./test'.mkdir(parents=True,exist_ok=True)

删除目录

注:只能删除空目录

In : Path.rmdir()

获取目录下的所有文件夹

法一:通过p.is_dir()方法判断,并放到list里

p = Path('.')
p_dir=[x for x in p.iterdir() if x.is_dir()]

法二:使用p.iterdir() 生成器

注意这个返回的排序是以任意方式(in arbitrary order)返回的

p = Path('docs')
for child in p.iterdir(): child

获取目录下的所有文件

p = Path('.')
p_file=[x.name for x in p.iterdir() if x.is_file()]

获取目录下的特定文件

In : list(p.glob('**/*.py'))
Out: [PosixPath('test_pathlib.py'), PosixPath('setup.py'),
 PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
 PosixPath('build/lib/pathlib.py')]

rglob相当于在golb的参数前面加上了**/这个常用的字符。**/意为:在这个目录和所有子目录下递归。
详情参加fnmatch

In : list(p.rglob('*.py'))
Out: [PosixPath('test_pathlib.py'), PosixPath('setup.py'),
 PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
 PosixPath('build/lib/pathlib.py')]

获取文件名

In : Path('my/library.tar.gz').stem
Out: 'library.tar'

In : Path('my/library.tar').stem
Out: 'library'

In : Path('my/library').stem
Out: 'library'

获取文件后缀

In: PurePosixPath('my/library/setup.py').suffix
Out:'.py'

In: PurePosixPath('my/library.tar.gz').suffix
Out:'.gz'

In: PurePosixPath('my/library').suffix
Out:''

获取文件所有后缀

Input:PurePosixPath('my/library.tar.gar').suffixes
Output:['.tar', '.gar']

Input:PurePosixPath('my/library.tar.gz').suffixes
Output:['.tar', '.gz']

Input:PurePosixPath('my/library').suffixes
Output:[]

拼接路径

使用 / 拼接路径

In : Path('/') / 'home' / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')

In : Path('/') / Path('home') / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')

In : '/' / Path('home') / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')

打开文件

p = pathlib.Path("/Users") / "2000" / "hehe.txt"
with p.open("r",encoding-'UTF-8') as f:
     data = f.read() 
print(data)

os和pathlib常见对比

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值