首页 > 编程语言 >python-zipfile

python-zipfile

时间:2023-10-18 18:35:23浏览次数:37  
标签:zip python zipfile ZipFile file path txt

python-zipfile

目录

zipfile 是python的一个内置模块,专门用于压缩文件和解压文件

常用方法

ZipFile(filename[,mode[,compression[,allowZip64]]])
import zipfile

file_path = "D:/test.zip"
file_path2 = "xxx"

"""这里的第二个参数用r表示是读取zip文件,w或a是创建一个zip文件,默认使用r """
print(zipfile.ZipFile(file_path))
print(zipfile.ZipFile(file_path, 'r'))
print(zipfile.ZipFile(file_path2, 'w'))

<zipfile.ZipFile filename='D:/test.zip' mode='r'>
<zipfile.ZipFile filename='D:/test.zip' mode='r'>
<zipfile.ZipFile filename='xxx' mode='w'>

# z.namelist() 会返回压缩包内所有文件名的列表。
file = zipfile.ZipFile(file_path)
for file_name in file.namelist():
    print(file_name)

a.txt
b.txt
c.txt

压缩包信息

ZipFile.getinfo(),ZipFile.infolist()和ZipFile.namelist()
import zipfile

file_path = "D:/test.zip"
file = zipfile.ZipFile(file_path)
print(file.getinfo("a.txt"))
print(file.infolist())
print(file.namelist())
file.close()

<ZipInfo filename='a.txt' external_attr=0x20 file_size=9>
[<ZipInfo filename='a.txt' external_attr=0x20 file_size=9>, <ZipInfo filename='b.txt' external_attr=0x20 file_size=9>, <ZipInfo filename='c.txt' external_attr=0x20 file_size=9>]
['a.txt', 'b.txt', 'c.txt']


解压文件

ZipFile.extractall()
with zipfile.ZipFile('models.zip' as zf:
    zf.extractall(path=download_dir)
ZipFile.extract(member[, path[, pwd]])
**将zip文档内的指定文件解压到当前目录**
import zipfile, os

f = zipfile.ZipFile(zipfilepath) # 读取需要解压文件
for file in f.namelist():
  f.extract(file,  savedir)  #在 savedir 解压文件
f.close()


f = zipfile.ZipFile(os.path.join(os.getcwd(), 'file.zip')) #拼接成一个路径
for file in f.namelist():
  f.extract(file, r'D:/Work')  #在D:/Work中解压文件
f.close()

压缩文件

 ZipFile.write(filename[, arcname[, compress_type]])

**将指定文件添加到zip文档中**
filename为文件路径,arcname为添加到zip文档之后保存的名称
import zipfile, os
zipFile = zipfile.ZipFile(r'D:/test.zip'), 'w')
zipFile.write(r'D:/test.doc', '保存的名字', zipfile.ZIP_DEFLATED)
zipFile.close()

# 将文件D:/test.doc添加到压缩文档中

批量压缩

import zipfile  
z = zipfile.ZipFile(filename, 'r')  
print z.read(z.namelist()[0]) 
#这样就读取出z.namelist()中的第一个文件,并且输出到屏幕,当然也可以把它存储到文件。

#下面是创建zip压缩包的方法,与读取的方法其实很类似的:
import zipfile, os  
z = zipfile.ZipFile(filename, 'w') 
# 注意这里的第二个参数是w,这里的filename是压缩包的名字

#假设要把一个叫testdir中的文件全部添加到压缩包里(这里只添加一级子目录中的文件)
if os.path.isdir(testdir):  
     for d in os.listdir(testdir):  
         z.write(testdir+os.sep+d)  
         # close() 是必须调用的!  
         z.close() 
#面的代码非常的简单。想想还有一个问题,如果我把一个test/111.txt 添加到压缩包里之后我希望在包里它放到test22/111.txt怎么办呢?
#其实这个就是Python ZipFile模块的write方法中第二个参数的作用了。只需要这样调用:
z.write("test/111.txt", "test22/111.txt") 

参考链接

https://cloud.tencent.com/developer/article/2151640

标签:zip,python,zipfile,ZipFile,file,path,txt
From: https://www.cnblogs.com/tian777/p/17773052.html

相关文章

  • python-functools
    python-functools目录python-functoolspartial偏函数案例1-普通使用案例2-延迟执行案例3-回调函数添加参数partialmethodreducewrapsupdate_wrappercache(user_function)lru_cache(maxsize)singledispatchsingledispatchmethod参考资料functools模块用于高阶函数:作用与或者返回......
  • 利用 python 抽取pdf 中表格到 excel
    首先推荐camelotpdf_file_input="TTAF086-2021.pdf"tables=camelot.read_pdf(pdf_file_input,pages='11',flavor='stream')df=tables[0].dfdf.to_excel("TTAF086-2021.xlsx",index=False)pdf表格效果如下其......
  • Python基础习题1
    请大家不要上网搜索或在pycharm里试运行,尽量要闭卷做练习,做错的我们统一讲解。 1. 关于 Python的编程环境,下列的哪个表述是正确的?(   )A、Python的编程环境是图形化的;B、 Python只有一种编程环境ipython;C、Python自带的编程环境是IDLE;D、用windows自带的......
  • Linux 下安装 miniconda,管理 Python 多环境
    安装miniconda1、下载安装包Miniconda3-py37_22.11.1-1-Linux-x86_64.sh,或者自行选择版本2、把安装包上传到服务器上,这里放在/home/software3、安装bashMiniconda3-py37_22.11.1-1-Linux-x86_64.sh4、按回车WelcometoMiniconda3py37_22.11.1-1Inordertocontin......
  • mac搭建python3 开发环境
    #这是linux版的,macos版的https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.2-MacOSX-x86_64.shcurlhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh-o/tmp/miniconda.shbash/tmp/minic......
  • 【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序
    前言当谈到王者荣耀游戏时,无法忽视的是其丰富多样的英雄皮肤。这些皮肤不仅为玩家提供了个性化的游戏体验,还展示了设计师们的创造力和努力。然而,要手动下载每个英雄的皮肤图片是一项枯燥且费时的任务。幸运的是,我们可以利用编程的力量来自动化这一过程。本文将介绍如何使用Pytho......
  • 【Python&RS】基于GDAL栅格数据/图片位深度(bit)转换
    ​    最近在用OpenCv库处理图片时发现cv库无法读取64位的tif影像,所有想通过Python将64位的图片转换成8位的。今天就跟大家分享一下如何利用Python的GDAL库,实现栅格数据/图片的位深度转换。        在数字图像处理中,我们常常会听到不同的位数术语,比如64位、16......
  • 【小白必看】Python爬虫数据处理与可视化
    前言本文分析了一段Python代码,主要功能是从网页中提取数据并进行数据处理与可视化。代码通过发送HTTP请求获取网页内容,使用XPath解析网页内容,并提取所需数据。然后使用pandas库构建数据结构,对数据进行统计与分组,并使用matplotlib库进行数据可视化。最后,对数据进行筛选、排序和保......
  • 【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现
    前言英雄联盟是一款备受喜爱的团队对战游戏,游戏中每位英雄都有各种精美的皮肤供玩家选择。本文将介绍一个使用Python编写的英雄联盟皮肤下载器,可以快速获取所有英雄的皮肤图片,让您更方便地欣赏和收藏这些皮肤。运行效果截图导入必要的模块和库importrequests#pipi......
  • 【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码
    前言本文介绍了如何使用Python中的requests库来获取音频文件并保存到本地。在这个例子中,我们使用了喜马拉雅平台上的一个API接口来获取音频ID和名称,并使用这些信息构造音频地址,然后通过发送HTTP请求将音频内容下载保存到本地。运行效果截图导入requests库importrequests......