pathlib的Path替代os.path的方便之处

前言:参考其他博客的感悟,感觉部分可以提高生产力,不用写长段累赘的代码,使用方便,直接上手

pathlib的Path替代os.path的方便之处

参考:你应该使用pathlib替代os.path
建议:python3.6+,低版本可能不支持
妙处小结:
1、较快 获取当前文件路径以及所在文件夹
2、较快 拼接路径
3、较快 更改文件后缀名以及文件名
4、较快 一次性读写文件
5、较快 创建文件以及多级目录

from pathlib import Path

# 1、基本用法
print(Path(__file__).resolve()) # 显示当前文件路径
print(Path(__file__).resolve().parent) # 显示当前文件所在文件夹路径
# print(Path.cwd()) # 显示项目文件路径
# print(Path.cwd().is_dir()) # 判断项目文件路径是否为目录
print("------------------")

# 2、拼接路径
# 过去路径拼接正确的方法是用os.path.join, win10和linux的分隔符不同
import os
print(os.path.join( '/home', 'download/cimg'))
# # 改进一
# print(Path('/').joinpath('home', 'download/img'))
# 改进二, 至少一个Path() 配合/运算符,推荐
print(Path('home') / 'download/img') # home\download\img
# expanduser能自动加上win10默认路径
print(Path('~/lyanna').expanduser() / 'config.py') # C:\Users\CHENXUANGE\lyanna\config.py

print("------------------")
p = Path('/Users/dongweiming/test')
print(p.parents[0]) # \Users\dongweiming
print(p.parents[2]) # \
print(p.parent) # \Users\dongweiming
print(p.parent.parent) # \Users

print("------------------")
# 3、获得文件后缀以及去掉后缀的文件名, 更改后缀名以及文件名,推荐
p = Path('/usr/local/etc/my.cnf')
print(p.suffix, p.stem) # .cnf my

p = Path('/home/gentoo/screenshot/abc.jpg')
print(p) # \home\gentoo\screenshot\abc.jpg
print(p.with_suffix('.png')) # \home\gentoo\screenshot\abc.png
print(p.with_name("123.jpg")) # \home\gentoo\screenshot\123.jpg
print("------------------")

# 4、读写操作建议仍用过去方法,但一次性读写可以尝试Path
with open('old_path.txt', 'a') as f:
    f.write("not as good as Path")
# 一次性写读
Path("new_path.txt").write_text("good Path")
print(Path("new_path.txt").read_text())
print("------------------")

# 5、创建文件或多级目录
Path("1/2").mkdir(parents=True)
Path("1/aok.py").touch()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值