网站首页 > 文章中心 > 其它

python压缩图函数

作者:小编 更新时间:2023-09-28 18:22:56 浏览量:9人看过

python中zip函数有哪些高级用法

zip() ?功能是从参数的多个迭代器中选取元素组合成一个新的迭代器.顾名思义,它就是一个将对象进行打包和解包的函数.

python压缩图函数-图1

它可以传入的参数包括;元组、列表、字典等迭代器

打包zip(iterables)

当zip函数的参数只有一个时,它将从iterable中依次取一个元素,组成一个元组.

解包zip(*iterables)

解包,zip 相反,可理解为解压,返回多维矩阵形式,有几个组元素就返回几维的.

比如,下面我是用三个列表组合起来的迭代式,那么解压后就返回三维的矩阵

zip高级用法

讲完了基本的再来说一下该函数的高级用法.高级用法离不开一个词:Pythonic,就是将代码写的更优雅美观,看起来有逼格!

① 列表推导

例如:

我们要同时遍历a、b,且要对它们进行操作,那就要放在同一个for循环内,zip函数正好合适

当然,如果你需要对下标进行操作,那么还需要加上enumerate函数

用python解压图片并打印代码

import zipfile

# 传入压缩文件zfile.zip获取相关信息

zip_file = zipfile.ZipFile('zfile.zip')

# 获取压缩文件中的内容

f_content = zip_file.namelist()

# 压缩前的大小

f_size = zip_file.getinfo('zfile/a.txt').file_size

# 压缩后的大小

c_size = zip_file.getinfo('zfile/a.txt').compress_size

ZipFile 对象有一个 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夹 的字符串的列表.这些字符串可以传递给 ZipFile 对象的 getinfo()方法,返回一个关 于特定文件的 ZipInfo 对象.ZipInfo 对象有自己的属性,诸如表示字节数的 file_size 和 compress_size,它们分别表示原来文件大小和压缩后文件大小.ZipFile 对象表示 整个归档文件,而 ZipInfo 对象则保存该归档文件中每个文件的有用信息.

从 ZIP 文件中解压缩

ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当 前工作目录中.

# 解压

zip_extract = zip_file.extractall()

zip_extract.close()

运行这段代码后, example.zip 的内容将被解压缩到 C:\. 或者, 你可以向 extractall()传递的一个文件夹名称,它将文件解压缩到那个文件夹,而不是当前工作 目录.如果传递给 extractall()方法的文件夹不存在,它会被创建.例如,如果你用 exampleZip.extractall('C:\ delicious')取代?处的调用,代码就会从 example.zip 中解压 缩文件,放到新创建的 C:\delicious 文件夹中.

ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件.

创建和添加到 ZIP 文件

要创建你自己的压缩 ZIP 文件,必须以"写模式"打开 ZipFile 对象,即传入'w' 作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件).

如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指 的文件,将它加到 ZIP 文件中.write()方法的第一个参数是一个字符串,代表要添 加的文件名.第二个参数是"压缩类型"参数,它告诉计算机使用怎样的算法来压 缩文件.可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩 算法,它对各种类型的数据都很有效).

zip_file = zipfile.ZipFile('new.zip','w')

# 把zfile整个目录下所有内容,压缩为new.zip文件

zip_file.write('zfile',compress_type=zipfile.ZIP_DEFLATED)

# 把c.txt文件压缩成一个压缩文件

# zip_file.write('c.txt',compress_type=zipfile.ZIP_DEFLATED)

zip_file.close()

这段代码将创建一个新的 ZIP 文件,名为 new.zip,它包含 spam.txt 压缩后的内容.

要记住,就像写入文件一样,写模式将擦除 ZIP 文件中所有原有的内容.如果 只是希望将文件添加到原有的 ZIP 文件中,就要向 zipfile.ZipFile()传入'a'作为第二 个参数,以追加模式打开 ZIP 文件.

python zip函数的用法

定义:zip([iterable, ...])

zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些 tuples组成的list(列表).若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同.利用*号操作符,可以将list unzip(解压),看下面的例子就明白了:

对于这个并不是很常用函数,下面举几个例子说明它的用法:

* 二维矩阵变换(矩阵的行列互换)

比如我们有一个由列表描述的二维矩阵

通过python列表推导的方法,我们也能轻易完成这个任务

另外一种让人困惑的方法就是利用zip函数:

这种方法速度更快但也更难以理解,将list看成tuple解压,恰好得到我们"行列互换"的效果,再通过对每个元素应用list()函数,将tuple转换为list

* 以指定概率获取元素

这个函数有个限制,指定概率的列表必须和元素一一对应,而且和为1,否则这个函数可能不能像预想的那样工作.

稍微解释下,先利用random.uniform()函数生成一个0-1之间的随机数并复制给x,利用zip()函数将元素和他对应的概率打包成tuple,然后将每个元素的概率进行叠加,直到和大于x终止循环

使用python对图片进行压缩并保持品质

对于图片,强行被定义高和宽会变形,我们希望图片被改变大小后,比例保持不变,完成对图片的压缩.

①pillow : pip install pillow -i

以上就是土嘎嘎小编为大家整理的python压缩图函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章