/ 拼接路径
resolve() 规范化路径,生成一个名指示的绝对路径
usr_local = pathlib.Path('usr/local')
share = usr_local / '..' / 'share'
print(share.resolve())
'usr\share'
joinpath() 传入可序列化对象作为单独的参数来构建路径
root = pathlib.Path('/')
subdirs = ['user','local']
usr_local = root.joinpath(*subdirs)
print(usr_local)
'\user\local'
with_name() 替换文件名
filename = pathlib.Path('/user/test.txt')
filename = filename.with_name('thisPython.py')
print(filename)
/user/thisPython.py
with_suffix() 替换文件后缀
filename = pathlib.Path('/user/test.txt')
filename = filename.with_suffix('.py')
print(filename)
'\user\test.py'
parts 以/拆分路径,结果是一个元组
path = pathlib.Path('/user/name/ltj')
print(path.parts)
('\\', 'user', 'name', 'ltj')
parent 返回上一级父路径 | parents 属性是一个迭代器,返回上一级父路径,直到找到根路径
path = pathlib.Path('/user/name/ltj')
print(path.parent)
for parent in path.parents:
print(parent)
/usr/name
\user\name
\user
\
name 获取最后一个分隔符的文件名
suffix 获取文件名后缀
stem 获取文件名不包含后缀
home() 获取用户主目录
cwd() 获取当前工作目录
iterdir() 生成器,生成包含目录中每个元素生成一个新的Path实列
p = pathlib.Path('.')
for i in p.iterdir():
print(i)
-----------result-----------------------
.bash_history
.designer
.docker
.gitconfig
.minttyrc
.PyCharm2019.2
.pylint.d
.viminfo
.virtualenvs
.vscode
3D Objects
AppData
Application Data
Contacts
Cookies
Desktop
Documents
Downloads
glob() 找出一个与模式匹配的文件
p = pathlib.Path('.')
for i in p.glob('.*'):
print(i)
-------------result---------------------
.bash_history
.designer
.docker
.gitconfig
.minttyrc
.PyCharm2019.2
.pylint.d
.viminfo
.virtualenvs
.vscode
rglob() 递归扫描与模式匹配的文件
write_bytes() 以字节流的方式写入文件,会覆盖之前的内容
p = pathlib.Path(r'C:\Users\admin\Desktop\work_data_info\All_test\test_pathlib\pathlib_test.txt')
p.write_bytes('this is a test'.encode('utf-8'))
write_text() 以字符串的方式字符串写入文件,会覆盖之前的内容
p = pathlib.Path(r'C:\Users\admin\Desktop\work_data_info\All_test\test_pathlib\pathlib_test.txt')
p.write_text('this is a test')
read_bytes() 从文件中按照字节流读取
p = pathlib.Path(r'C:\Users\admin\Desktop\work_data_info\All_test\test_pathlib\pathlib_test.txt')
p.read_bytes()
-----------------result----------------------
b'asffdsfdfdsa'
read_text() 从文件中按照字符串读取
p = pathlib.Path(r'C:\Users\admin\Desktop\work_data_info\All_test\test_pathlib\pathlib_test.txt')
p.read_text()
-----------------result----------------------
asffdsfdfdsa
open() 打开文件并保留文件句柄
with p.open('r', encoding='utf-8') as handle:
print(f'read from open() {handle.read()}')
mkdir() 创建路径
p = pathlib.Path(r'C:/Users/admin/Desktop/text')
p.mkdir()
symlink_to() 创建一个符号链接,根据路径的值命名
p = pathlib.Path('example_link')
p.symlink_to('index.rst')
print(p)
print(p.resolve().name)
-----------------result-------------------------
example_link
index.rst
stat() 和 lstat() 来获取文件有关详细信息
p = pathlib.Path(r'C:\Users\admin\Desktop\work_data_info\test.html')
stat_info = p.stat()
print(f'文件名:{p.name}')
print(f'文件大小:{stat_info.st_size}')
print(f'文件权限: {stat_info.st_mode}')
print(f'文件所有者: {stat_info.st_uid}')
print(f'文件所在硬盘: {stat_info.st_dev}')
print(f'文件创建时间: {stat_info.st_ctime}')
print(f'文件最后修改时间: {stat_info.st_mtime}')
print(f'文件最后访问时间: {stat_info.st_atime}')
-------------------------------------------------
文件名:test.html
文件大小:706
文件权限: 33206
文件所有者: 0
文件所在硬盘: 3399566922
文件创建时间: 1568078206.9792645
文件最后修改时间: 1568617745.1509233
文件最后访问时间: 1568617746.1509233
mkdir() 创建目录
touch() 创建文件
p = pathlib.Path('test.txt')
p.touch()
rmdir() 删除目录,目录不存在则产生一个filenotfounderror异常
p = pathlib.Path('test.txt')
p.rmdir()
unlink() 删除文件