前言:参考其他博客的感悟,感觉部分可以提高生产力,不用写长段累赘的代码,使用方便,直接上手
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()