您现在的位置是:网站首页> 编程资料编程资料
Python四大模块文件管理介绍_python_
2023-05-25
515人已围观
简介 Python四大模块文件管理介绍_python_
一、os模块
1、方法大纲

2、常用方法
| 方法 | 描述 |
|---|---|
| getcwd() | 获取当前工作目录 |
| chdir(path) | 将当前的工作目录更改为指定的路径 |
| listdir(path=None) | 列出指定目录中的文件名。如果 path 为 None,则使用 path=‘.’。 |
| mkdir(path, mode=511, *, dir_fd=None) | 创建目录 |
| makedirs(name, mode=511, exist_ok=False) | 递归创建多层目录 |
| rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None) | 重命名文件或目录 |
| remove(path, *, dir_fd=None) | 删除文件 |
| rmdir(path, *, dir_fd=None) | 删除目录 |
| removedirs(name) | 递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空抛出异常。 |
| walk(top, topdown=True, onerror=None, followlinks=False) | 遍历 top 路径下的所有子目录,返回一个包含 3 个元素的元组:(dirpath, dirnames, filenames)。 |
| os.curdir | 指代当前目录(‘.’) |
| os.pardir | 指代上一级目录(‘…’) |
| os.sep | 路径分割符(Windows 为 ‘\’,Linux 为 ‘/’) |
| os.linesep | 行终止符(Windows 为 ‘\r\n’,Linux 为 ‘\n’) |
| os.name | 指代当前使用的操作系统(Windows 系统为 ‘nt’,Linux 为 ‘posix’) |
二、glob模块
1、方法大纲
glob模块也是Python标准库中一个重要的模块,主要用来查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中。使用这个模块最主要的原因就是,该模块支持几个特殊的正则通配符,用起来贼方便,这个将会在下方为大家进行详细讲解。

2、使用示例
import glob path1 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9].png" print(glob.glob(path1)) path2 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9a-z].*" print(glob.glob(path2))
注意:这个函数里面还有一个参数,recursive,当其为真时,则模式’**'将与任何文件匹配,并且
零或更多目录和子目录。
三、shutil模块
1、方法大纲
os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作。而Python另外一个标准库——shutil模块,它作为os模块的补充,提供了复制、移动、删除、压缩、解压等操作,这些 os 模块中一般是没有提供的。但是需要注意的是:shutil模块对压缩包的处理是调用ZipFile和TarFile这两个模块来进行的。

2、压缩包
对压缩包管理是使用zipfile模块
import zipfile import os file_list = os.listdir(os.getcwd()) # 获取当前目录 # 将上述所有文件,进行打包,使用“w” with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj: # 对文件进行压缩 for file in file_list: zipobj.write(file) # 将文件写入压缩包中
四、pathlib模块
1、对比图
| 操作 | os and os.path | 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.exists | Path.exists |
| 用户目录 | os.path.expanduser | Path.expanduser and Path.home |
| 是否为目录 | os.path.isdir | Path.is_dir |
| 是否为文件 | os.path.isfile | Path.is_file |
| 是否为连接 | os.path.islink | Path.is_symlink |
| 文件属性 | os.stat | Path.stat, Path.owner, Path.group |
| 是否为绝对路径 | os.path.isabs | PurePath.is_absolute |
| 路径拼接 | os.path.join | PurePath.joinpath |
| 文件名 | os.path.basename | PurePath.name |
| 上级目录 | os.path.dirname | PurePath.parent |
| 同名文件 | os.path.samefile | Path.samefile |
| 后缀 | os.path.splitext | PurePath.suffix |
2、路径获取
获取当前工作目录
import pathlib print(pathlib.Path.cwd()) # 虽然在这里打印出来的很像一个字符串,但实际上得到的是一个WindowsPath对象 # 其实现了 __repr__ 和 __str__ 底层方法 print(pathlib.Path(__file__)) # 获取当前文件路径
工作目录是在哪个目录下运行你的程序,不是项目目录
获取家目录
import pathlib print(pathlib.Path.home()) # 获取当前用户的家目录
获取文件绝对路径
from pathlib import Path # 当前文件路径 p = Path(__file__) print(p) print(p.absolute()) # 将路径转换为绝对路径,p.resolve()功能也是一样的
遍历当前目录
from pathlib import Path # 当前文件路径 p = Path('files') for i in p.iterdir(): print(i.absolute()) """运行结果:
C:\Users\3500\PycharmProjects\untitled3\demo\files\json
C:\Users\3500\PycharmProjects\untitled3\demo\files\username.txt
C:\Users\3500\PycharmProjects\untitled3\demo\files\yaml
"""
3、文件属性
from pathlib import Path # 当前文件路径 p = Path(__file__) print(p.absolute()) # 获取绝对路径 print(p.resolve()) # 获取绝对路径 print(p.name) # 获取文件名称 'test.py' print(p.stem) # 只要文件名,不要后缀 test print(p.suffix) # 获取文件 后缀.py print(p.suffixes) # 文件所有的后缀 ['.py'] print(p.parts) # 拆分('C:\\', 'Users', '3500', 'PycharmProjects', 'untitled3', 'demo', 'test.py') print(p.parent) # 获取当前路径的父级目录,C:\Users\35000\PycharmProjects\untitled3\demo print(p.parent.parent) # C:\Users\3500\PycharmProjects\untitled3 print(p.parents) # 所有的父级 print(p.anchor) # 锚,目录前面的部分 C:\ 或者 / 4、文件判断
from pathlib import Path # 1. is_file() 判断是不是文件 print(Path.cwd().is_file()) # False # 2. is_dir() 判断是不是文件夹 print(Path.cwd().is_dir
相关内容
- yolov5模型配置yaml文件详细讲解_python_
- pandas进阶教程之Dataframe的apply方法_python_
- Python pandas按行、按列遍历DataFrame的几种方式_python_
- PyTorch模型的保存与加载方法实例_python_
- Python中torch.load()加载模型以及其map_location参数详解_python_
- Python图像处理之图像金字塔的向上和向下取样_python_
- PyTorch开源图像分类工具箱MMClassification详解_python_
- 如何使用Python读取.xlsx指定行列_python_
- Python wheel文件详细介绍_python_
- Python实现简单的文件操作合集_python_
点击排行
本栏推荐
