Python笔记----使用Pathlib模块操作目录
1.使用pathlib模块操作目录
pathlib模块提供了一组面向对象的类,这些类可代表各种操作系统上的路径,程序可通过这些类操作路径。
pathlib模块下有两个子类:PurePath和Path。
Purepath只是负责对路径字符串执行操作,至于该字符串是否对应实际路径,它并不关心。
Path对象可用于判断对应的文件是否存在,是否为文件,是否为目录等。
PurePath的基本功能
程序可使用PurePath和PurePath的两个子类创建PurePath对象。程序在创建PurePath或Path时,即可传入单个路径字符串,也可传入多个路径字符串,PurePath会把他们拼接成一个字符串。例如:
如果在创建PurePath时不传入任何参数,系统会默认创建当前路径的PurePath,相当于传入点好(.代表当前路径)作为参数。
如果在创建PurePath时传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效。
在Windows风格的路径中,只有盘符才能算根路径,仅有斜杠是不算的。
如果在创建PurePath时传入的路径字符串包含多余的/和.系统会直接忽略他们,但不会忽略两点(…代表上一级路径)。
PurePath对象支持各种比较运算符,即可比较是否相等,也可比较大小,实际上就是比较它们的路径字符串。对于不同风格的路径字符串,他们可以比较是否相等,但不可以比较大小,否则会报错。例如:
PurePath对象支持斜杠(/)作为运算符,该运算符的作用是将多个路径连接起来,UNIX和Windows风格的路径字符串都支持斜杠作为连接运算符。例如:
还可以用str()方法将PurePath对象恢复为字符串。会转换为对应平台风格的字符串。
2.Path的功能和用法
iterdir()方法可返回Path对应目录下的所有子目录和文件。glob()方法用于获取Path对应目录下匹配指定模式的所有文件,此方法可非常方便的查找指定文件。例如:
from pathlib import *
#获取当前目录
p = Path('.')
#遍历当前目录下所有文件和子目录
#for i in p.iterdir():
#print(i)
print('================')
#获取上一级目录
p = Path('../')
#获取上级目录和其子目录下的.py文件
#for i in p.glob('**/*.py'):
#print(i)
print('================')
#获取D:\tools\PythonCode\基于Python的小游戏\飞机大战对应的目录
p = Path('D:/tools/PythonCode/基于Python的小游戏/飞机大战')
#获取上级目录和其子目录下的.py文件
for i in p.glob('**/*.py'):
print(i)
read_bytes()和read_text(encoding = None, errors = None)方法分别用于读取Path对应文件的字节数据(二进制数据)和文本数据。
write_bytes(data)和Path.write_text(data,encoding = None, errors = None)方法来输出字节数据(二进制数据)和文本数据。例如:
from pathlib import *
p = Path('a.txt')
#指定以GBK字符集输出文本内容
result = p.write_text('''我叫LSW''', encoding = 'GBK')
#返回输出的字符数
print(result)
#指定以GBK字符集读取文本内容
content = p.read_text(encoding = 'GBK')
print(content)
b= p.read_bytes()
print(b)