Python的os和shutil模块封装了常见的文件和目录操作如copy,cd,mv,rm以及解压等等操作。
直接看用法
首先import
1 | import os, shutil |
shutil模块
shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。
拷贝文件
shutil会自动识别拷贝的到底是文件还是文件夹, 如果存在同名的文件将会自动进行覆盖。
1 | shutil.copy($file_path, $dir_path) |
移动或重命名文件
但如果路径下已有重名的文件,将报错
1 | shutil.move($file_path, $dir_path) # 移动到另外一个文件夹中 |
拷贝文件夹/删除文件夹
1 | shutil.copytree($file_path, $dir_path) # 拷贝所有文件到新的文件夹下,保持原有的文件结构。 |
生成压缩文件
1 | shutil.make_archive(base_name, 'gztar', root_dir, [base_dir) |
- base_name : 创建的目标文件名,包括路径,减去任何特定格式的扩展。
- format : 压缩包格式。”zip”, “tar”, “bztar”或”gztar”中的一个。
- root_dir : 需要打包的文件夹路径。打包完成时存储在上一级目录。
- base_dir : 使用后会将base_dir作为路径,解压后有个有层级的文件夹,而仅非只有单独的打包内容。
解压文件
1 | shutil.unpack_archive(filename[, extract_dir[, format]]) |
- filename是压缩文档的完整路径
- extract_dir是解压缩路径,默认为当前目录。
- format是压缩格式。默认使用文件后缀名代码的压缩格式。”zip”, “tar”, “bztar”或”gztar”中的一个。
os模块
Python的os模块封装了常见的文件和目录操作
判断使用的平台
1 | # 获取平台名称 |
工作目录与路径相关的操作
1 | # 获取路径和文件名等 |
判断文件是否存在
1 | os.path.isfile() 函数分别检验给出的路径是一个文件? |
执行外部shell命令
推荐使用subprocess模块替代
1 | os.system('') 执行外部shell命令。 |