python--pathlib--路径操作

from pathlib import Path

p1=Path(__file__)  #获取当前文件路径
#D:\ss\test1.py

p2 = Path.cwd()  #获取当前文件的目录
#D:\ss

p3=Path.cwd().parent  #当前文件目录的父目录
#D:\
p=Path.cwd().joinpath('aa')  #路径拼接
#D:\ss\aa
st=Path(__file__).stat()  #获取当前文件的信息
#os.stat_result(st_mode=33206, st_ino=6473924464701313, st_dev=1559383105, st_nlink=1, st_uid=0, st_gid=0, st_size=300, st_atime=1578661629, st_mtime=1578661629, st_ctime=1576891792)
a=st.st_size   #文件大小,单位:字节

p=p1.parent  #p1的父路径
z=p1.parents #p的所有祖辈路径,返回一个对象
# for i in z:
#     print(i)
pp = Path('D:/python')  #创建一个path对象
a=pp.is_file()  #判断pp是否文件
a=pp.is_dir()  #判断pp是否目录
a=p2.is_absolute()  #判断p2是否是绝对路径
a=p2.match('d:\*')  #判断p2是否符合某一个模式
a=p2.glob('*.py') #在p2下搜索符合某一模式的文件--只搜索p2目录
a=p3.glob('**\*.py')  #在p3下搜索符合某一模式的文件--包括所有子目录
# a=p3.rglob('*.py')  #在p3下搜索符合某一模式的文件--包括所有子目录
# for i in a:
#     print(i)

#pp.mkdir()  #创建目录--如果已经存在就抛出异常
a=p1.name  #获取文件名
#test1.py
a=p1.suffix #获取后缀
#.py
a=pp.stem  #目录最后一个部分,不带后缀
a=pp.with_name('vocab.txt')  #替换最后一个部分并返回一个新的路径
a=p1.with_suffix('.lm') #替换扩展名,返回新的路径,扩展名存在则不变
#D:\ss\test1.lm
dir=Path('d:/')
a=dir.iterdir()  #所有文件与文件夹路径的迭代器--只返回本目录的不包括子目录
# for i in a:
#     print(i)

file=Path('D:/ss.lm')
#file.rename('d:/cc.txt')  #改名并移动-文件与文件夹都可以
#如果file不存在就抛出异常
#移动必须是同一驱动器
#目标文件已经存在时抛出异常

file.replace('d:/cc.txt')  #改名并移动-文件与文件夹都可以
#与rename类似,目标文件或文件夹已经存在时则覆盖原文件

print(a)

 

 

 

posted @ 2020-01-11 05:42  天子骄龙  阅读(2222)  评论(0编辑  收藏  举报