# 获取当前工作目录
print(Path.cwd()) # /Users/zaygee/work_script/Script/python_test/round_two
# 获取当前文件路径
print(Path(__file__).resolve()) # /Users/zaygee/work_script/Script/python_test/round_two/8_28_test.py
# 获取用户home目录
print(Path.home()) # /Users/zaygee
# 获取文件属性
print(Path(__file__).stat())
print(Path(__file__).stat().st_mode)
文件路径组成部分
.name:文件名
.stem:文件名,不包含后缀
.suffix:后缀
.parent:父级目录
.anchor:锚
.parents:获取所有父级目录
print(Path(__file__).name) # 8_28_test.py
print(Path(__file__).stem) # 8_28_test
print(Path(__file__).suffix) # .py
print(Path(__file__).parent) # /Users/zaygee/work_script/Script/python_test/round_two
print(Path(__file__).parent.parent) # /Users/zaygee/work_script/Script/python_test
print(Path(__file__).anchor) # /
print(list(Path(__file__).resolve().parents))
print(Path(__file__).resolve().parents[1]) # /Users/zaygee/work_script/Script/python_test
子路径扫描
print(f"扫描目录{Path.cwd()}下的所有目录")
print([path for path in Path.cwd().iterdir() if Path.cwd().is_dir()])
"""
扫描目录/Users/zaygee/work_script/Script/python_test/round_two下的所有目录
[PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_26_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_19_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_25_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_15_3_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_8_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_15_2_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_12_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_9_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_27_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_10_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/test-log.log'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_18_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_11_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/__pycache__'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7-5-test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_14_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_28_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_6_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_7_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/mkdir'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_16_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_19_1.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_14_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_17_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/8_15_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_29_test.py'), PosixPath('/Users/zaygee/work_script/Script/python_test/round_two/7_20_test.py')]
"""
子目录匹配
"""递归所有子目录下匹配指定的目录"""
for file in Path().cwd().rglob('*.py'):
print(file)
"""
/Users/zaygee/work_script/Script/python_test/round_two/8_26_test.py
/Users/zaygee/work_script/Script/python_test/round_two/8_19_test.py
/Users/zaygee/work_script/Script/python_test/round_two/7_25_test.py
/Users/zaygee/work_script/Script/python_test/round_two/8_15_3_test.py
/Users/zaygee/work_script/Script/python_test/round_two/7_8_test.py
/Users/zaygee/work_script/Script/python_test/round_two/8_15_2_test.py
/Users/zaygee/work_script/Script/python_test/round_two/7_12_test.py
/Users/zaygee/work_script/Script/python_test/round_two/7_9_test.py
"""
路径拼接
"""路径拼接"""
print(Path.home().joinpath('test', 'test.txt'))
"""
/Users/zaygee/test/test.txt
"""
路径检测
.is_file():是否是文件
.is_dir():是否是文件夹
.exists():是否存在
print(Path.cwd().is_file())
print(Path.cwd().is_dir())
print(Path.cwd().exists())
文件操作
新增文件:touch(exist_ok=True)
新增目录:mkdir(parents=True)
删除文件:unlink()
删除目录:rmdir()
文件移动:replace()
print(Path('touch.txt').touch(exist_ok=True))
print(Path('mkdir').rmdir())
print(Path('mkdir').mkdir())
print(Path('touch.txt').unlink())
print(Path('test.txt').replace(Path.joinpath(Path.cwd().parent, 'test.txt')))
�
常用pathlib和os对比图
操作 |
os |
pathlib |
绝对路径 |
os.path.abspath |
Path.resolve |
修改权限 |
os.chmod |
Path.chmod |
创建目录 |
os.mkdir |
Path.mkdir |
重命名 |
os.rename |
Path.rename |
移动 |
os.replace |
Path.replace |
删除目录 |
os.rmdir |
Path.rmdir |
删除文件 |
os.remove\os.unlink |
Path.unlink |
工作目录 |
os.getcwd |
Path.cwd |
用户目录 |
os.path.expanduser |
Path.home |
上级目录 |
os.path.dirname |
Path(file).parent |
是否存在 |
os.path.exists |
Path.exists |
是否为目录 |
os.path.isdir |
Path.is_dir |
是否为文件 |
os.path.isfile |
Path.is_file |
是否绝对路径 |
os.path.isabs |
PurePath.is_absolute |
路径拼接 |
os.path.join |
PurePath.joinpath |
文件名 |
os.path.basename |
PurePath.name |