Python pathlib的简单使用-2(Python3.4才有的标准库)
Python pathlib的简单使用-2
函数 | 功能描述 |
---|---|
cwd | 获取当前运行路径 |
absolute | 获取绝对路径 |
home | 获取用户目录 |
Path(file) | 获取当前文件目录 |
iterdir | 遍历当前文件夹,返回直接子文件夹和子文件 |
is_file | 判断是不是文件 |
is_dir | 判断是不是目录 |
mkdir | 创建目录,parents=True表示递归创建, |
rmdir | 删除目录,删除最底层的目录 |
touch | 创建文件 |
read_text | 读取文件string类型 |
read_bytes | 读取文件byte类型 |
write_text | 覆盖写文件string类型 |
write_bytes | 覆盖写文件byte类型 |
replace | 移动或重命名文件,移动时父目录不存在抛出异常 |
rename | 重命名文件 |
with_name | 替换基础名称,但只是逻辑替换,还需replace替换才真正生效 |
with_suffix | 替换后缀,但只是逻辑替换,还需replace替换才真正生效 |
glob | 匹配正则 |
rglob | 递归匹配正则 |
exists | 判断是否存在 |
基本测试
from pathlib import Path
print(f"当前路径:{Path.cwd()}")
print(f"绝对路径:{Path('a.txt').resolve().absolute()}")
print(f"用户目录:{Path.home()}")
print(f"当前文件路径:{Path(__file__)}")
print(f"文件属性(文件大小|创建时间|修改时间):{Path('demo.py').stat()}")
print(f"文件夹下的直接文件或目录:{list(Path('.').iterdir())}")
print(f"判断是否是文件:{Path('demo.py').is_file()}")
print(f"判断是否是文件夹:{Path('demo.py').is_dir()}")
print(f"创建文件夹:{Path('aaa/bbb/ccc/ddd/ppp.py').mkdir(parents=True, exist_ok=True)}")
print(f"删除文件夹:{Path('aaa/bbb/ccc/ddd/ppp.py').rmdir()}")
print(f"创建文件:{Path('a.txt').touch()}")
with open(Path("a.txt")) as f:
print(f"文件内容:{f.read()}")
print(f"读取文件text类型:{Path('a.txt').read_text()}")
print(f"读取文件byte类型:{Path('a.txt').read_bytes()}")
print(f"覆盖写入文件text类型:{Path('a.txt').write_text('12345')}")
print(f"覆盖写入文件byte类型:{Path('a.txt').write_bytes(b'aaaabbbbcccc')}")
print(f"创建文件:{Path('a.txt').touch()}")
print(f"重命名文件:{Path('a.txt').replace('b.txt')}")
print(f"重命名文件:{Path('b.txt').rename('c.txt')}")
print(f"重命名文件:{Path('b.txt').with_name('c.txt')}") # 替换名称但不会真正操作,真正操作还得replace
print(f"重命名文件:{Path('b.txt').with_suffix('.a')}") # 替换后缀但不会真正操作,真正操作还得replace
print(f"移动文件:{Path('c.txt').replace('b/c.txt')}")
print(f"所有py结尾的文件(包括子目录):{list(Path('.').glob('**/*.py'))}")
print(f"所有py结尾的文件(包括子目录):{list(Path('.').rglob('*.py'))}")
print(f"当前文件夹下py结尾的文件(不包括子目录):{list(Path('.').glob('*.py'))}")
print(f"判断是否存在:{Path('a.txt').exists()}")
print(f"判断是否存在:{Path('aaa/bbb').exists()}")