1. 使用os.path进行路径和文件管理
1.1 拆分路径
- os.path.split 返回一个二元组,包含文件路径和文件名
- os.path.dirname 返回文件的路径
- os.path.basename 返回文件名
- os.path.splitext 返回文件按拓展名分割的二元组
1.2 构建路径
- os.path.expanduser 展开用户的home目录
- os.path.abspath 获取文件的绝对路径
- os.path.join 根据不同的操作系统平台,使用不同的路径分割符拼接路径
- os.path.isabs 判断是否为绝对路径
1.3 获取文件属性
- os.path.getsize 获取文件大小
- os.path.getatime 获取文件的访问时间
- os.path.getmtime 获取文件的修改时间
- os.path.getctime 获取文件的创建时间
1.4 判断文件类型
- os.path.exists
- os.path.isfile
- os.path.isdir
- os.path.islink
- os.path.ismount
应用案例:
1. 获取指定目录下所有文件列表
2. 获取指定目录下所有文件和大小的字典
2. 利用os模块管理文件和目录
2.1 查看文件或者目录
- os.getcwd() 获取当前目录
- os.listdir() 列出指定目录下文件和目录
2.2 对文件和目录的增删查改
- os.unlink/remove 删除path路径所指的文件
- os.rmdir 删除文件夹,该文件夹必须为空
- os.mkdir 创建一个文件夹
- os.rename 重命名文件或文件夹
2.3 文件的权限
- os.access 判断文件是否有对应的权限
- os.chmod 改变文件的权限
案例:打印出最常用的10条Linux命令
3. 使用高级文件处理接口shutil
对于常见的文件操作,shutil更易用。
3.1 复制文件和文件夹
- shutil.copy
- shutil.copytree
3.2 文件和文件夹的改名和移动
- shutil.move
该函数与Linux中的move作用一模一样
3.3 删除目录
- shutil.rmtree
这个不管文件夹是否为空,都将删除,这个是与os.rmdirde的区别