目录
shutil模块是python标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。
os模块提供了对目录或文件的一般操作。shutil 模块作为补充,提供了移动、复制、压缩、解压等操作,这些os模块都没有提供。
import shutil # 参数1为要拷贝的文件或目录,参数2为拷贝文件存放的位置 shutil.copy('main.py','path2/main.py') # 文件拷贝 shutil.copyfile('main.py','main1.py') # 文件拷贝 shutil.copytree('path/dir','path2') # 目录拷贝,当path2不存在的时候才能正常拷贝 shutil.copytree('../hrun','path1',ignore=shutil.ignore_patterns("*.csv")) # 拷贝时排除某些文件(可以是具体的,也可以是模糊匹配)
删除整个文件夹,无论是否为空,这个方法要谨慎使用
shutil.rmtree('path1')
shutil.move('源地址','目标地址')
# 参数: # 1、压缩后的文件存放位置及文件名; # 2、压缩文件格式; # 3、目标压缩文件或文件夹 shutil.make_archive('./path/zipfile','zip',root_dir='./path2')
import zipfile import os now_pathflies = os.listdir(os.getcwd()) # 获得当前文件下的所有文件及目录 with zipfile.ZipFile('myzipfile.zip', 'w') as zipobj: # 使用write():创建一个压缩包 for file in now_pathflies: zipobj.write(file)
with zipfile.ZipFile('myzipfile.zip', 'r') as zipobj: # 使用.namelist():读取压缩包中的文件信息 print(zipobj.namelist())
with zipfile.ZipFile("myzipfile.zip", "r") as zipobj: # 使用.extract():将压缩文件中的单个文件解压到指定文件夹中,指定目录不存在会自动创建 zipobj.extract("demo.py", './path')
with zipfile.ZipFile("myzipfile.zip", "r") as zipobj: # 使用.extractall():将压缩文件中的所有文件解压到指定文件目录中,指定目录不存在会自动创建 zipobj.extractall('./path/dir')
import tarfile with tarfile.open('test.tar', 'w') as tar: # # 创建一个压缩文件对象 tar.add('./path') # 添加文件到压缩文件对象中 with tarfile.open('test.tar', 'r') as tar: # 默认解压到当前位置,可设置解压地址 tar.extractall('./tarfile/test0')