pathlib库使用教程

pathlib库使用教程

pathlib库适用于python3.4+版本,如果使用更低版本建议用OS库

另外一个重要的特征是pathlib库支持链式调用,更加符合面向对象编程思想

获取当前目录

from pathlib import Path
import os
print(Path.cwd())
print(os.getcwd())

连接目录

连接目录,pathlib也更加易用,用重载运算符即可

from pathlib import Path
import os
base_dir = Path.cwd()
next_path = os.path.join(base_dir, 'main.py')
print(next_path)
next_path = base_dir / 'note.json' # pathlib支持的连接方式
print(next_path)

home目录

从home目录查看对比,pathlib更加好用

from pathlib import Path
import os
base_dir = Path.cwd()
home_path = Path.home()
print(home_path)
home_path = os.path.expanduser('~')
print(home_path)

判断路径是否存在

os.path.exists(path) 和 Path(path).exits()使用起来易用度相似,但如果对象已被Path()化如next_path,那么明显pathlib易用性更高

from pathlib import Path
import os

base_dir = Path.cwd()
os_path = os.path.join(base_dir, 'main.py')
print(os.path.exists(os_path))
next_path = base_dir / 'xts.json'  # pathlib支持的连接方式
print(next_path.exists())
print(Path(os_path).exists())

判断路径是否存在

from pathlib import Path
import os

base_dir = Path.cwd()
os_path = os.path.join(base_dir, 'main.py')
print(os.path.isdir(os_path))
next_path = base_dir / 'xts.json'  # pathlib支持的连接方式
print(next_path.is_dir())
print(Path(os_path).is_dir())

获取文件大小

pathlib的stat()可以显示文件的属性,os并没有类似直接获取状态的函数

from pathlib import Path
import os

base_dir = Path.cwd()
os_path = os.path.join(base_dir, 'main.py')
print(os.path.getsize(os_path))
next_path = base_dir / 'note.json'  # pathlib支持的连接方式
print(next_path.stat().st_size)
print(Path(os_path).stat())
# 打印
os.stat_result(st_mode=33206, st_ino=1125899907295012, st_dev=2788589978, st_nlink=1, st_uid=0, st_gid=0, st_size=1183, st_atime=1768922248, st_mtime=1768922247, st_ctime=1753449203)

重命名文件

os.path.rename('src', 'dsc')
Path('src').rename('dst')

删除文件

os.remove('path')
Path('path').unlink()

删除空目录

os.rmdir('path')
Path('path').rmdir()

创建目录

os.mkdir('path')
os.makedirs('path')
Path('path').mkdir()
Path('path').mkdir(parents=True) # 递归创建目录

遍历目录

os.listdir('path') # 返回的是一个列表
Path('path').iterdir() # 会获取到一个generator对象

通配符匹配

glob.glob() # 通用的匹配方法
Path(path).glob() # pathlib的glob匹配方法
Path(path).rglob() # pathlib的glob递归匹配方法

读取文件内容

以往的使用方式

with open(file, file_mode) as fp:
    fp.read()

pathlib的使用方式

Path(path).read_text()
Path(path).read_bytes()

写入文件内容

以往的使用方式

with open(file, file_mode) as fp:
    fp.write()

pathlib的使用方式

Path(path).write_text(content)
Path(path).write_bytes()

父目录查看

# curpath D:/usr/npu/cluster
Path.cwd().parent # 显示父目录D:/usr/npu/
Path.cwd().part # 显示列表['D:', 'usr', 'npu']
Path.cwd().name # 显示当前目录名字 

递归查询

Path.cwd().rglob('*') # 递归显示所有文件,*代表所有文件
Path.cwd().rglob('*.py') # 递归显示所有py文件
Path.cwd().glob('*') # 显示当前所有文件
Path.cwd().glob('**/') # 显示当前路径每一层文件
word? # ?号模糊匹配一个字符
word[0-9] # 匹配一个数字
posted @ 2026-01-20 00:18  LemHou  阅读(11)  评论(0)    收藏  举报