导入Path包
from pathlib import Path
新建目录
In : Path('./test').mkdir(parents=True,exist_ok=True)
删除目录
注:只能删除空目录
In : Path.rmdir()
获取目录下的所有文件夹
法一:通过p.is_dir()方法判断,并放到list里
p = Path('.')
p_dir=[x for x in p.iterdir() if x.is_dir()]
法二:使用p.iterdir() 生成器
注意这个返回的排序是以任意方式(in arbitrary order)返回的
p = Path('docs')
for child in p.iterdir(): child
获取目录下的所有文件
p = Path('.')
p_file=[x.name for x in p.iterdir() if x.is_file()]
获取目录下的特定文件
In : list(p.glob('**/*.py'))
Out: [PosixPath('test_pathlib.py'), PosixPath('setup.py'),
PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
PosixPath('build/lib/pathlib.py')]
rglob相当于在golb的参数前面加上了**/这个常用的字符。**/意为:在这个目录和所有子目录下递归。
详情参加fnmatch
In : list(p.rglob('*.py'))
Out: [PosixPath('test_pathlib.py'), PosixPath('setup.py'),
PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
PosixPath('build/lib/pathlib.py')]
获取文件名
In : Path('my/library.tar.gz').stem
Out: 'library.tar'
In : Path('my/library.tar').stem
Out: 'library'
In : Path('my/library').stem
Out: 'library'
获取文件后缀
In: PurePosixPath('my/library/setup.py').suffix
Out:'.py'
In: PurePosixPath('my/library.tar.gz').suffix
Out:'.gz'
In: PurePosixPath('my/library').suffix
Out:''
获取文件所有后缀
Input:PurePosixPath('my/library.tar.gar').suffixes
Output:['.tar', '.gar']
Input:PurePosixPath('my/library.tar.gz').suffixes
Output:['.tar', '.gz']
Input:PurePosixPath('my/library').suffixes
Output:[]
拼接路径
使用 / 拼接路径
In : Path('/') / 'home' / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')
In : Path('/') / Path('home') / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')
In : '/' / Path('home') / 'dongwm/code'
Out: PosixPath('/home/dongwm/code')
打开文件
p = pathlib.Path("/Users") / "2000" / "hehe.txt"
with p.open("r",encoding-'UTF-8') as f:
data = f.read()
print(data)