Python路径处理

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")))
#进行向下的递归搜索。(查找当前目录下以及该目录下所有的子目录中对应的文件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值