函数

os 和 pathlib 模块对应

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 os
from pathlib import Path
 
os.path.abspath(__file__)
os.path.realpath(__file__)
Path(__file__).resolve() # 路径绝对化
 
# 返回包含文件名的完整路径
# /Users/immwind/Desktop/test.py

获取指定层级路径

from pathlib import Path
p = 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 path
from 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')