函数
[[pathlib]]
解析文件
from pathlib import Path
# 文件地址(文件必须存在)p = Path.cwd() / 'test.txt'# 写入p.write_text('Hello World') # 返回 11# 读取p.read_text() # 返回 'Hello World
获取路径
路径
os.getcwd() # '/Users/immwind/Desktop'Path.cwd() # PosixPath('/Users/immwind/Desktop')
路径和文件名
os 为旧写法
import osfrom pathlib import Path
os.path.abspath(__file__)os.path.realpath(__file__)Path(__file__).resolve() # 路径绝对化
# 返回包含文件名的完整路径# /Users/immwind/Desktop/test.py
获取指定层级路径
from pathlib import Pathp = Path.cwd()p.parts# 以元组形式返回所在目录的文件夹名# ('/', 'Users', 'immwind', 'Developer')
# 获取指定文件的的父目录名(完整路径的情况下)p = Path.cwd() / 'hello.py'# 返回 PosixPath('/Users/immwind/Developer/hello.py')p.parent.name# 返回 'Developer'
# 如果最后一级已经是目录,则直接使用 name 就好p.name
路径处理
from os import pathfrom pathlib iport Path
# 路径拼接文件名,可多层级path.join(os.getcwd(), 'file', 'img.png')# 返回 '/Users/immwind/Desktop/file/img.png'
Path.cwd() / 'file' / 'img.png'Path.cwd().joinpath('file', 'img.png')# 均返回 PosixPath('/Users/immwind/Desktop/file/img.png')
上面两种方式均不支持文件名加后缀的拼接,只能是多个路径加完整文件名
增加后缀
from pathlib iport Path
# with_suffix 会替换原有后缀(Path.cwd() / 'folder' / 'file_name').with_suffix('.jpg')
# 返回PosixPath('/Users/immwind/Desktop/folder/file_name.jpg')