Python之文件系统操作(pathlib)
""" 文件相关操作(pathlib) date:2023-01-29 """ from pathlib import Path # 获取当前工作目录 print(Path.cwd()) # D:\workspace\py\python_demo\root\demo\study_demo\file_demo p = Path(Path.cwd()) # 实例化 p = p / "pathlib_demo.py" # 组装文件路径 print(p) # D:\workspace\py\python_demo\root\demo\study_demo\file_demo\pathlib_demo.py print(p.is_dir()) # False print(p.is_file()) # True print(p.exists()) # True print(p.name) # 文件名包含后缀 pathlib_demo.py print(p.stem) # 文件名不包含后缀 pathlib_demo print(p.suffix) # 后缀名 .py print(p.parent) # 父级目录 D:\workspace\py\python_demo\root\demo\study_demo\file_demo print(p.parents) # 父级目录序列对象,可通过索引值访问 <WindowsPath.parents> for pp in p.parents: print(pp) """ D:\workspace\py\python_demo\root\demo\study_demo\file_demo D:\workspace\py\python_demo\root\demo\study_demo D:\workspace\py\python_demo\root\demo D:\workspace\py\python_demo\root D:\workspace\py\python_demo D:\workspace\py D:\workspace D:\ """ print(p.stat()) # 文件状态 print(p.stat().st_size) # 文件大小(字节) cp = Path(".") # 当前路径 Path("..") # 父级路径 print(cp.iterdir()) # <generator object Path.iterdir at 0x000001A170595F90> for pp in cp.iterdir(): """输出当前目录下所有文件和文件夹""" print(pp) # 创建目录 cp = Path() cp = cp / "dir" cp.mkdir(parents=True, exist_ok=True) # 新建目录,自动创建父级目录、目录已存在不报错 # 创建文件 cp = cp / "file.txt" f = cp.open("w") f.writelines("hello") f.close() # 修改文件名称 cp_new = cp.parent / "file_new.txt" cp.rename(cp_new) # file.txt -> file_new.txt # 删除文件 cp_new.unlink() # 删除目录 cp_new.parent.rmdir() # 查找文件 p = Path() print(list(p.glob("*.py"))) # 搜索当前目录下所有py后缀的文件 print(list(p.glob("**/*.py"))) # 搜索当前目录及其子目录下所有后缀py的文件 l = [x.name for x in p.glob("*.py") if x.is_file() & x.name.startswith("file")] # 列表推导式查询指定文件的名称 print(l) # ['file_demo.py']