pathlib
from pathlib import Path
print(Path.cwd())
## C:\Users\*****\Desktop\python\pythonProject
#cwd()获取当前目录的路径
#同时,我们可以指定一个路径生成一个路径对象。
p = Path.cwd()
print(p)
## C:\Users\*****\Desktop\python\pythonProject
#直接使用‘ / ’进行路径拼接
q = p / 'File.txt'
print(q)
## C:\Users\*****\Desktop\python\pythonProject\File.txt
#使用is_dir()方法判断是否为文件夹, is_file()方法判断是否为文件
print(p.is_dir())
print(q.is_file())
## True
## True
#使用exists()方法判断路径是否存在
print(p.exists())
## True
#使用name属性获取路径的最后一部分
print(p.name)
## pythonProject
#stem,suffix属性分别获取文件名和后缀名
print(q.stem)
print(q.suffix)
## File
## .txt
#parent属性用于获取其父级目录
print(p.parent)
## C:\Users\*****\Desktop\python
#parents属性用于获取逻辑祖先路径构成的序列,是一个可迭代对象
ps = p.parents
for i in ps:
print(i)
## C:\Users\*****\Desktop\python
## C:\Users\*****\Desktop
## C:\Users\*****
## C:\Users
## C:\
#同时,支持序列的一些操作
print(ps[1])
## C:\Users\*****\Desktop
#parta属性,将路径的各个组件拆分成元组
print(p.parts)
## ('C:\\', 'Users', '14126', 'Desktop', 'python', 'pythonProject')
#用stat()查询文件或文件夹的信息
print(p.stat())
## os.stat_result(st_mode=16895, st_ino=2814749767364598, st_dev=11513459387097440, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1737821738, st_mtime=1737821738, st_ctime=1737210969)
#其中st_size指定的是文件或文件夹的尺寸单位是字节
print(q.stat().st_size)
## 128
#使用iterdir()获取当前路径下所有子文件和子文件夹
#得到的是一个生成器,可以使用for迭代输出
#同时可以配合列表推导式,将当前目录下的文件整理到一个列表:
a = [x for x in p.iterdir() if x.is_file()]
#使用mkdir()创建文件
n = p / 'test'
n.mkdir(exist_ok=True)
#其中的exist_ok参数若存在相同文件不会报错
#rename()修改文件或文件夹的名字
n.rename("Test")
#rmdir(), unlink()分别用于删除文件夹和文件
#glob()查找功能:
x = Path('.')
print(list(p.glob("*.txt")))
## [WindowsPath('C:/Users/*****/Desktop/python/pythonProject/a.txt'), WindowsPath('C:/Users/*****/Desktop/python/pythonProject/File.txt')]
print(list(p.glob("*/*.txt")))
#搜索当前路径的下一级目录中所有包含.txt后缀的文件
print(list(p.glob("**/*.txt")))
#进行向下的递归搜索。(查找当前目录下以及该目录下所有的子目录中对应的文件)