Pathlib中Path


提炼自-> 知乎大神的帖子

>>Note:本文待更新...时刻记录所学

集百家之所长

一、常用函数

1. 路径拼接

In : os.path.join('/', 'home', 'dongwm/code')
Out: '/home/dongwm/code'

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

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

**注意**
In : Path('/') / 'home' / 'dongwm/code' / '/'	# 起始的 / 会消去前面所有的字符串
Out: PosixPath('/')		# 前面的都消失了

2. 查找父目录

In : p = Path('/Users/dongweiming/test')

In : p.parents[0]
Out: PosixPath('/Users/dongweiming')

In : p.parents[1]
Out: PosixPath('/Users')

In : p.parents[2]
Out: PosixPath('/')

In : p.parent
Out: PosixPath('/Users/dongweiming')

In : p.parent.parent
Out: PosixPath('/Users')

3. 获取文件名后缀 或者 文件名

In : p = Path('/usr/local/etc/my.cnf')

In : p.suffix, p.stem
Out: ('.cnf', 'my')

# 多个文件名时
In : Path('my.tar.bz2').suffixes
Out: ['.tar', '.bz2']

In : Path('my.tar').suffixes
Out: ['.tar']

In : Path('my').suffixes
Out: []

4. 获取home目录

In : Path.home()
Out: PosixPath('/Users/dongweiming')

5. 修改文件名或者后缀

In : p = '/home/gentoo/screenshot/abc.jpg'

In : '{}.png'.format(os.path.splitext(p)[0])
Out: '/home/gentoo/screenshot/abc.png'

In : root, ext = os.path.splitext(p)	# 返回文件路径与后缀的列表

In : '{}/{}{}'.format(root.rpartition('/')[0], 123, ext)
Out: '/home/gentoo/screenshot/123.jpg'

***采用Path后***
In : p = Path('/home/gentoo/screenshot/abc.jpg')

In : p.with_suffix('.png')
Out: PosixPath('/home/gentoo/screenshot/abc.png')

In : p.with_name(f'123{p.suffix}')	# f是python3.6引入的,{}内与c的printf中%累似
Out: PosixPath('/home/gentoo/screenshot/123.jpg')

6. 创建多级目录

# 获取当前目录
Path.pwd() # print working directory
***以下两种方法都可以在当前目录创建多级目录***
1. Path('1/2/3').mkdir(parents=True)
2. os.makedirs('1/2/3')

7. 文件或目录是否存在

# 文件是否存在
Path('1.txt').is_file()
# 路径是否存在
Path('mk1').is_dir()
# 文件或路径是否存在
ans = Path('mk1/mk2').exists()
print(ans)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值