作者:帅的人都关注了
Github:Github
爱好:Americano More Ice !
QQ学习交流群(new): 811792998
pathlib(引用官网)
: 该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径。
话不多说,实战为主!
直接上CODE! 看完不懂算我输!
import collections
from pathlib import Path
if __name__ == '__main__':
print(f"""
获取当前工作目录: {Path.cwd()}
获取用户home目录: {Path.home()}
获取当前文件路径: {[p for p in Path(__file__).parts]}
获取绝对路径: {[Path(__file__).resolve()]}
""")
# 获取文件属性
file1 = Path(__file__)
print(f"""
文件属性:{file1.stat()}
文件大小:{file1.stat().st_size}
文件创建时间:{file1.stat().st_ctime}
文件修改时间:{file1.stat().st_mtime}
""")
# 路径组成部分
print(f"""
文件名(包括后缀):{file1.name}
文件名(不包括后缀): {file1.stem}
后缀: {file1.suffix}
父级目录: {file1.parent}
父二级目录: {file1.parent.parent}
目录前面部分: {file1.anchor}
""")
# 子路径扫描
cwd = Path.cwd()
print(f"""
扫描某个目录下所有路径:{[path for path in cwd.iterdir() if cwd.is_dir()]}
统计目录下的不同文件类型: {collections.Counter([f.suffix for f in cwd.iterdir() if f.is_file()])}
匹配当前目录下glob: {list(cwd.glob('*.py'))}
匹配当前目录下rglob: {list(cwd.rglob('*.py'))}
""")
# 路径测试
file = Path(__file__)
print(f"""
是否为文件: {file.is_file()}
父级目录是否为文件: {file.is_file()}
是否为文件夹: {file.is_dir()}
父级目录是否为文件夹: {file.is_dir()}
是否存在: {file.exists()}
""")
# 文件操作
filet = Path('1.txt')
dirt = Path('/dirs/dir')
print(f"""
创建文件(文件存在不做任何操作): {filet.touch(exist_ok=True)}
创建文件(文件存在,报错): {filet.touch(exist_ok=False)}
创建目录(一级目录): {dirt.mkdir()}
创建目录(多级目录): {dirt.mkdir(parents=True)}
删除目录: {dirt.rmdir()}
""")