from pathlib import Path
print(Path.cwd().is_file())# False
p = Path('./test.py')print(p.is_file())# 文件不存在,也会返回False# exists() 判断是否存在
p = Path('./data.json')print(p.exists())# True or False
6. 判断文件夹
print(Path.cwd().is_dir())# True
p = Path('./test.py')print(p.is_dir())# False
7. 拼接路径
from pathlib import Path
# 当前文件路径
p = Path('./')print(p.absolute())# 当前绝对路径print(p.joinpath(p.absolute(),'test.py'))# 路径拼接data.json
8. 遍历文件目录
from pathlib import Path
p = Path(__file__).parent
# iterdir()遍历文件目录for i in p.iterdir():print([i for i in p.iterdir()if i.is_dir()])# 文件夹print([i for i in p.iterdir()if i.is_file()])# 文件
9. 正则匹配
glob:只会遍历查找当前目录
from pathlib import Path
p = Path(__file__).parent
# glob 只会遍历查找当前目录print(p.glob('*.txt'))print([i for i in p.glob('*.txt')])print([i for i in p.glob('*.py')])
rglob :会递归所有子目录
from pathlib import Path
p = Path(__file__).parent
# rglob 会递归所有子目录print(p.rglob('*.txt'))#print([i for i in p.rglob('*.txt')])print([i for i in p.rglob('*.py')])
match() 检查路径是否符合规则
from pathlib import Path
p = Path('6666.txt')# math 检查匹配规则print('math', p.match('*.txt'))# 只检查规则,符合规则即使文件不存在也会返回True
10. 文件操作
创建文件
from pathlib import Path
p = Path('./test.json')
p.touch()# 创建test.json
删除文件
from pathlib import Path
p = Path('test.json')
p.unlink()# 删除test.json 文件不存在会报错
文件读取
from pathlib import Path
p = Path('.gitignore')print(p.read_text())# 读取文本print(p.read_bytes())# 读取 bytes
文件写入
from pathlib import Path
p = Path('data.txt')
p.write_text('test')# 写入文本
p = Path('data1.txt')
p.write_bytes(b'666')# 写入 tytes
创建目录
from pathlib import Path
p = Path('test1')# 已经存在的目录会报错
p.mkdir()
p = Path('test2/test3')
p.mkdir(parents=True)# 递归创建
删除目录
from pathlib import Path
# rmdir()一次只删除一级目录,且当前目录必须为空
p = Path('test1')
p.rmdir()# 删除目录