4、创建和解压压缩包
注意:这里所说的压缩包,指的是“.zip”格式的压缩包;
1)读取压缩包里的文件
import zipfile with zipfile.ZipFile("python办公自动化.zip", "r") as zipobj: print(zipobj.namelist()) ----------------------------------------------------------- # 注意:有时候需要写成filename.encode("cp437").decode("gbk") with zipfile.ZipFile("python办公自动化.zip", "r") as zipobj: for filename in zipobj.namelist(): print(filename.encode("gbk").decode("gbk"))
结果如下:
2)读取压缩包里面的文件信息
import zipfile with zipfile.ZipFile(r"G:\tableau书籍\Tableau文件.zip", "r") as zipobj: for filename in zipobj.namelist(): info = zipobj.getinfo(filename) new_filename = filename.encode("cp437").decode("gbk") print(new_filename, info.file_size/1024/1024, info.compress_size/1024/1024)
结果如下:
3)解压压缩包
extract(“压缩包内要解压的文件名”,“解压到哪个位置”):将压缩包内单个文件解压出来;
extractall(“解压到哪个位置”):将压缩包内所有文件解压出来;
① 解压单个文件
extract(“压缩包内要解压的文件名”,“解压到哪个位置”)
import zipfile # 将该压缩包中的“a.txt”文件,单独解压到“傻子”文件夹下 with zipfile.ZipFile(r"G:\6Tipdm\7python办公自动化\python办公自动化.zip", "r") as zipobj: zipobj.extract("a.txt","./傻子/")
结果如下:
② 解压整个文件
extractall(“解压到哪个位置”)
import zipfile # 将该压缩包整个解压到“文件夹1”文件夹下 with zipfile.ZipFile(r"G:\6Tipdm\7python办公自动化\python办公自动化.zip", "r") as zipobj: zipobj.extractall("./文件夹1/")
结果如下:
注意:如果你的压缩包中“有密码”,则采用以下方式进行解压。
4)创建压缩包
① 对某些文件,创建压缩包
file_list = ["a.txt", "aa.txt", "文件夹1"] # 将上述三个文件,进行打包,使用“w” with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj: for file in file_list: zipobj.write(file)
结果如下:
② 压缩包已经存在,往其中添加文件
# 往上述压缩包中,再次添加一个新文件“傻子”文件夹,使用“a” with zipfile.ZipFile(r"我创建的压缩包.zip", "a") as zipobj: for file in file_list: zipobj.write("傻子")
结果如下: