介绍
pathlib 面向对象的文件系统路径,比os.path更加强大
该模块提供了一些类,这些类使用适合不同操作系统的语义来表示文件系统路径。
路径类分为纯路径和具体路径:
- 纯路径提供纯的计算操作,不提供I / O
- 具体路径从纯路径继承,提供I / O操作。
python 3.4版的新功能,3.6版更加完善
官方网址:
https://malaoshi.top/python/pathlib.html
https://docs.python.org/zh-cn/3.6/library/pathlib.html
https://docs.python.org/3.6/library/pathlib.html
导入
from pathlib import Path
属性
name
返回文件名
parent
返回上级目录
方法
功能强大,不展示,参见官方网址
判断是否存在
from pathlib import Path
p = Path('test.txt')
print(p.exists()) # 存在打印True,否则打印False
例子
img_path = Path('/Users/mym/Desktop/数据集/VOCdevkit/VOC2007/JPEGImages/007751.jpg')
img_name=img_path.name
path=img_path.parent.parent
print(img_name)
print(path)
xml_path = Path(path,"Annotations",img_name[:-len(img_path.suffix)]+".xml")
print(xml_path)
执行结果:
007751.jpg
/Users/mym/Desktop/数据集/VOCdevkit/VOC2007/
/Users/mym/Desktop/数据集/VOCdevkit/VOC2007/Annotations/007751.xml
转成字符串
img_path = Path('/Users/mym/Desktop/数据集/VOCdevkit/VOC2007/JPEGImages/007751.jpg')
str(img_path)
文件改名例子
以 vim_ 开头的文件名,名字中的日期相同,那么改成 20220306上午.mp4
如:
文件名:
vim_20220306_382423.mp4
vim_20220306_382424.mp4
vim_20220306_382425.mp4
改名为:
vim_20220306_上午.mp4
vim_20220306_下午.mp4
vim_20220306_晚上.mp4
代码
from pathlib import Path
path='G:\\java大数据班10分钟视频\\备份2\\'
p = Path(path)
#[x for x in p.iterdir() if x.is_file()]
time_tag=1 # 时间标记,1:上午,2:下午,3:晚上
last_file_time=""
for x in p.iterdir():
if x.is_file():
# print(x)
filename=x.name
# print(filename[:4])
if filename[:4] == "VID_":
print(filename)
one_pos=filename.find("_")
tow_pos=filename.find("_",one_pos+1)
current_file_time=filename[one_pos+1 :tow_pos]
# 当前文件名与上一次文件名相同,time_tag 加1
if current_file_time == last_file_time:
time_tag += 1
else:
time_tag = 1
file_name_part2=""
if time_tag==1:
file_name_part2="上午"
elif time_tag==2:
file_name_part2="下午"
elif time_tag==3:
file_name_part2="晚上"
last_file_time=current_file_time
# print(last_file_time)
new_file_name=current_file_time+file_name_part2+".mp4"
print(new_file_name)
x.rename(path+new_file_name)