python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]1、判断是否是zip文件#!/usr/bin/envpython3#encoding:utf-8importzipfilefilenames=[‘tcp_server.py’,’test.py’,’test.zip’]forfilenameinfilenames:print(‘{:>15}{}’.format(filename,zipfile.is_zipfile(fil…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、判断是否是zip文件

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

filenames= [‘tcp_server.py’, ‘test.py’, ‘test.zip’]for filename infilenames:print(‘{:>15} {}’.format(filename, zipfile.is_zipfile(filename)))

zipfile_is_zipfile.py

运行效果

[root@ mnt]#python3 zipfile_is_zipfile.py

tcp_server.py False

test.py False

test.zip True

2、查看zip里面的文件名

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zf:print(zf.namelist())

zipfile_namelist.py

运行效果

[root@ mnt]#python3 zipfile_namelist.py

[‘tcp_client.py’, ‘tcp_server.py’, ‘test.py’]

3、查看zip里面文件的大小、文件名、修改时间等参数

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfileimportdatetimedefprint_info(archive_name):

with zipfile.ZipFile(archive_name) as zf:for info inzf.infolist():print(info.filename)print(‘Comment :’, info.comment)

mod_date= datetime.datetime(*info.date_time)print(‘Modified :’, mod_date)if info.create_system ==0:

system= ‘Windows’

elif info.create_system == 3:

system= ‘Unix’

else:

system= ‘UNKNOWN’

print(‘System :’, system)print(‘Zip Version :’, info.create_version)print(‘Compressed :’, info.compress_size, ‘bytes’)print(‘UnCompressed :’, info.file_size, ‘bytes’)if __name__ == ‘__main__’:

print_info(‘test.zip’)

zipfile_infolist.py

运行效果

[root@ mnt]# python3 zipfile_infolist.py

tcp_client.py

Comment : b”Modified :2020-01-09 18:01:58System : Windows

Zip Version :63Compressed :221bytes

UnCompressed :301bytes

tcp_server.py

Comment : b”Modified :2020-01-09 18:15:06System : Windows

Zip Version :63Compressed :511bytes

UnCompressed :996bytes

test.py

Comment : b”Modified :2020-01-09 16:58:52System : Windows

Zip Version :63Compressed :206bytes

UnCompressed :426 bytes

4、指定文件名查看zip里面的文件信息

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘test.zip’) as zf:

filenames= [‘test.py’, ‘README.txt’]for filename infilenames:try:

info=zf.getinfo(filename)exceptKeyError:print(‘文件:{},不存在zip里面’.format(filename))else:print(‘文件名:{} 文件大小:{} bytes’.format(filename, info.file_size))

zipfile_getinfo.py

运行效果

[root@ mnt]#python3 zipfile_getinfo.py

文件名:test.py 文件大小:426bytes

文件:README.txt,不存在zip里面

5、查看zip里面文件的内容

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘test.zip’) as zf:

filenames= [‘test.py’, ‘README.txt’]for filename infilenames:try:

data=zf.read(filename)exceptKeyError:print(‘文件:{},不存在zip里面’.format(filename))else:print(‘文件名:{} 文件内容:{}’.format(filename, data))

zipfile_read.py

运行效果

[root@ mnt]#python3 zipfile_read.py

文件名:test.py 文件内容:b”#!/usr/bin/env python3\r\n”文件:README.txt,不存在zip里面

6、增加文件zip压缩

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘write.zip’,’w’) as zf:print(‘增加test.py压缩’)

zf.write(‘test.py’)

zipfile_write.py

运行效果

[root@ mnt]# python3 zipfile_write.py

增加test.py压缩

[root@ mnt]# ll-rw-r–r– 1 root root 278 Jan 10 11:37 write.zip

-rw-r–r– 1 root root 160 Jan 10 11:37 zipfile_write.py

7、设置压缩模式压缩文件

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfiletry:importzlib

compression=zipfile.ZIP_DEFLATEDexcept(ImportError, AttributeError):

compression=zipfile.ZIP_STORED

modes= { #set集合

zipfile.ZIP_DEFLATED: ‘deflated’,

zipfile.ZIP_STORED:’stored’,

}print(‘创建压缩文件’)

with zipfile.ZipFile(‘write_compression.zip’, ‘w’) as wf:

mode_name=modes[compression]print(‘增加 test.py 文件压缩并且设置压缩模式’, mode_name)

wf.write(‘test.py’, compress_type=compression)

zipfile_write_compression.py

运行效果

[root@ mnt]# python3 zipfile_write_compression.py

创建压缩文件

增加 test.py 文件压缩并且设置压缩模式 deflated

[root@ mnt]# ll-rw-r–r– 1 root root 256 Jan 10 14:11 write_compression.zip

-rw-r–r– 1 root root 542 Jan 10 14:11 zipfile_write_compression.py

8、压缩文件,并且修改被压缩的文件名

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘write_artcname.zip’, ‘w’) as wf:

wf.write(‘test.py’,arcname=’artcle_name_test.py’)

zipfile_write_arcname.py

运行效果

[root@ mnt]#python3 zipfile_write_arcname.py

[root@ mnt]#ll

-rw-r–r– 1 root root 302 Jan 10 14:17write_artcname.zip-rw-r–r– 1 root root 167 Jan 10 14:16zipfile_write_arcname.py

[root@ mnt]#unzip -l write_artcname.zip

Archive: write_artcname.zip

Length Date Time Name——— ———- —– —-

166 01-10-2020 11:35artcle_name_test.py——— ——-

166 1 file

9、从内存中获取数据,压缩为zip文件

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

msg= ‘This Data did not exist in a file’with zipfile.ZipFile(‘writestr.zip’, ‘w’, compression=zipfile.ZIP_DEFLATED) as zf:

zf.writestr(‘from_string.txt’, msg)

with zipfile.ZipFile(‘writestr.zip’, ‘r’) as zf:print(zf.read(‘from_string.txt’))

zipfile_writestr.py

运行效果

[root@ mnt]#python3 zipfile_writestr.py

b’This Data did not exist in a file'[root@ mnt]#ll

-rw-r–r– 1 root root 163 Jan 10 14:25writestr.zip-rw-r–r– 1 root root 312 Jan 10 14:25 zipfile_writestr.py

10、压缩数据,并且设置被压缩文件的时间等参数

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfileimporttime

msg= ‘This Data did not exist in a file’with zipfile.ZipFile(‘writestr_zipinfo.zip’, ‘w’) as zf:

info= zipfile.ZipInfo(‘from_string.txt’, date_time=time.localtime(time.time()))

info.compress_type=zipfile.ZIP_DEFLATED

info.comment= ‘这是压缩的注释’.encode(‘utf-8’)

info.create_system=0

zf.writestr(info, msg)

zipfile_writestr_zipinfo.py

运行效果

[root@ mnt]#python3 zipfile_writestr_info.py

[root@ mnt]#unzip -l writestr_zipinfo.zip

Archive: writestr_zipinfo.zip

Length Date Time Name——— ———- —– —-

33 01-10-2020 14:36from_string.txt

这是压缩的注释——— ——-

33 1 file

11、往压缩文件,增加文件继续压缩的示例

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfileprint(‘创建压缩zip’)

with zipfile.ZipFile(‘append.zip’, ‘w’) as zf:

zf.write(‘test.py’)print(‘往append.zip文件增加新的文件’)

with zipfile.ZipFile(‘append.zip’, ‘a’) as af:

af.write(‘test.py’, arcname=’new_test.py’)print(‘增加压缩文件完成’)

zipfile_append.py

运行效果

[root@ mnt]#python3 zipfile_append.py

创建压缩zip

往append.zip文件增加新的文件

增加压缩文件完成

[root@ mnt]#unzip -l append.zip

Archive: append.zip

Length Date Time Name——— ———- —– —-

166 01-10-2020 11:35test.py166 01-10-2020 11:35new_test.py——— ——-

332 2 files

12、查看压缩文件里面所有的目录和文件名

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfile

with zipfile.ZipFile(‘example.zip’, ‘r’) as rf:print(rf.printdir())

zipfile_printdir.py

运行效果

[root@ mnt]#python3 zipfile_printdir.py

File Name Modified Size

add/ 2020-01-10 14:45:360

add/test.zip 2020-01-10 09:58:18 1362add/write_artcname.zip 2020-01-10 14:17:44 302add/writestr.zip 2020-01-10 14:25:22 163content_update.txt2020-01-09 11:53:32 336

13、利用zipfile模块,把py代码转为pyc并且压缩打包成zip文件

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

python3 zipfile_Python之zipfile模块的使用[通俗易懂]

#!/usr/bin/env python3#encoding: utf-8

importzipfileif __name__ == ‘__main__’:

with zipfile.PyZipFile(‘pyzipfile.zip’, ‘w’) as wf:

wf.debug= 3

print(‘增加Python多个文件’)

wf.writepy(‘.’)for name inwf.namelist():print(name)

zipfile_pyzipfile.py

运行效果

[root@ mnt]#python3 zipfile_pyzipfile.py

增加Python多个文件

Adding filesfromdirectory .

Adding test.pyc

Adding zipfile_pyzipfile.pyc

test.pyc

zipfile_pyzipfile.pyc

[root@ mnt]#unzip -l pyzipfile.zip

Archive: pyzipfile.zip

Length Date Time Name——— ———- —– —-

233 01-10-2020 14:57test.pyc349 01-10-2020 14:57zipfile_pyzipfile.pyc——— ——-

582 2 files

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192510.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Brocade 光纤交换机下zone划分 — 基础篇

    Brocade 光纤交换机下zone划分 — 基础篇###Brocade光纤交换机下zone划分—基础篇#Brocade5320/SAN交换机/zone划分/>>INTRO:zone的配置,在逻辑上将连接在SAN网络中的设备划分为不同区域,隔离网络中主机和设备。要实现这种SAN划分,可用在NameServer中隔离(Softwarezoning)或在数据转发时过滤数据包(Hardwarezonin

  • 0xc000007b的解决办法(续)「建议收藏」

    最后更新:2019-3-23请大家首先确定已经按照原文的方法及步骤尝试过,但是还是没有解决问题再来看这篇文章。如果你还没有看过原文,请先看原文:http://blog.csdn.net/VBcom/article/details/6070705看到这里的朋友,应该是看了原文但是没有解决问题。其实这个问题基本上就是由DirectX引起,但是…

  • pytest测试框架常用功能_unittest批量加载用例

    pytest测试框架常用功能_unittest批量加载用例目录前言###文章内容有配套的学习视频和笔记都放在了文章末尾###1、什么是单元测试框架2、单元测试框架主要做什么3、单元测试框架和自动化测试框架有什么关系4、Pytest测试框架说明5、Pytest框架和Unittest框架区别重点:配套学习资料和视频教学前言大家好我是测试达人,最近我会更新一系列pytest的框架全套教程,不比你在培训机构花的几千块买的ppt教程好吗?==白嫖真香!!###文章内容有配套的学习视频和笔记都放在了文章末尾###1、什么是单

    2022年10月14日
  • 国密SM4分组加密[通俗易懂]

    国密SM4分组加密[通俗易懂]分享一篇SM4加密算法实现文章,算法用C语言即可实现,只有短短300多行代码。SMS4是我国无线局域网标准WAPI中所采用的分组密码标准,随后被我国商用密码标准采用,又名SM4(SM是“商密”的缩写,目前公布的其他商密标准包括SM2椭圆曲线公钥密码,SM3密码杂凑算法)。作为我国商用密码的分组密码标准,预计SMS4在国内的敏感但非机密的应用领域会逐渐取代3DES,AES等国外分组密码标准,用于通…

  • Java 线程死锁及如何避免死锁介绍

    Java 线程死锁及如何避免死锁介绍死锁是指两个或两个以上的线程在执行过程中,**因争夺资源而造成的互相等待**的现象,在无外力作用的情况下,这些线程会一直相互等待而无法继续运行下去,

  • 前端的模块化_模块化设计

    前端的模块化_模块化设计前言在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀,此时在JS方面就会考虑使用模块化规范去管理。本文内容主要有理解模块化,为什么要模块化,模块化的优缺点以及模块化规范,并且介绍下开发中…

    2022年10月23日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号