本文目录一览:
- python 在不解压的情况下,怎么得知压缩包里面文件的大小呢?
- python 中如何压缩文件,并指定文件的压缩之后的大小。
- python怎样压缩和解压缩ZIP文件
- 怎么压缩用python写的游戏的文件大小?或者用什么开发库?
- 怎么从zip里提取文件 Python
- Python实现批量压缩文件/文件夹——zipfile
python 在不解压的情况下,怎么得知压缩包里面文件的大小呢?
可以使用 tarfile
模块在不解压的情况下查看压缩包里文件的大小,代码如下:
#coding=utf8
import tarfile
import os
tar = tarfile.open('G:/test/abc.tar.gz', 'r:gz')
for ti in tar:
if ti.isreg():
print(ti.name, ti.size)
python 中如何压缩文件,并指定文件的压缩之后的大小。
这个简单啊。你先压缩成一个ZIP文件。比如 example.zip
。
然后用Python将它分割成5个文件:e1
, e2
, e3
, e4
, e5
。
邮件发出去后,对方收到邮件,另存附件,然后在目录下运行:
copy e1+e2+e3+e4+e5 example.zip
此时Windows就将依次将5个文件复制到同一个文件里去。
python怎样压缩和解压缩ZIP文件
- Python使用
zipfile
模块压缩和解压ZIP文件。 - 读取zip文件:
首先,通过
zipfile
模块打开指定zip文件,如:
zpfd = zipfile.ZipFile(path, mode='r')
对于 zipfile
,其标志与 open
所用的打开文件标志有所不同,不能识别 'rb'
。
然后,读取zip文件中的内容,zipfile
对象提供一个 read(name)
的方法,name
为zip文件中的一个文件入口,执行完成之后,将返回读出的内容,如:
for filename in zpfd.namelist():
tmpcont = zpfd.read(filename)
print('len(tmpcont)', tmpcont)
需要注意的是,读取zip文件时,只能读取内容。
3. 写入zip文件:
首先,需要 zipfile
模块写打开或创建zip文件,如:
zpfd = zipfile.ZipFile(path, mode='w')
写打开是标志可以为 'w'
或 'a'
('a'
表示写入一个zip文件),或者传入第三个参数 compression
压缩标志:
compression=zipfile.ZIP_DEFLATED # 需要导入zlib模块
compression=zipfile.ZIP_STORED # 表示只对文件进行打包,并不压缩
写入有两种方式:
- 一种是直接写入一个已经存在的文件,可使用
zipfile
对象中write(filename, arcname, compress_type)
,第一个参数为文件名,第二个参数指写入zip文件中的文件名,默认与filename
一致,第三个参数压缩标志可以覆盖打开zipfile
时的使用参数; - 另一种是写入一个字符串,可使用
zipfile
对象中的writestr(zinfo_or_arcname, bytes)
,第一个参数是zipinfo
对象或写到zip文件中的压缩名,第二个参数是待写入的字符串。
- 最后,对于打开的
zipfile
对象需要进行关闭,从而使得写入内容真正写入磁盘,即:
zpfd.close()
怎么压缩用python写的游戏的文件大小?或者用什么开发库?
你可以尝试以下方法:
- 建立虚拟环境,减少Python打包额外的第三方库;
- 使用
UPX
和PyInstaller
进行压缩; - 使用
UPX
和Nuitka
进行压缩。 这几种方法网上可以找到很多教程,都能够在一定程度上减小打包出来的文件大小,但是因为Python的解释型语言,除了使用Nuitka
编译成exe以外,其它的压缩方法作用一般不大,但是使用Nuitka
编译后的文件也会有较大的体积。
怎么从zip里提取文件 Python
Python自带模块 zipfile
可以完成zip压缩文件的读写,而且使用非常方便,下面就来演示一下Python读写zip文件:
Python读zip文件
下面的代码给出了用Python读取zip文件,打印出压缩文件里面所有的文件,并读取压缩文件中的第一个文件。
import zipfile
z = zipfile.ZipFile("zipfile.zip", "r")
# 打印zip文件中的文件列表
for filename in z.namelist():
print('File:', filename)
# 读取zip文件中的第一个文件
first_file_name = z.namelist()[0]
content = z.read(first_file_name)
print(first_file_name)
print(content)
Python写/创建zip文件
Python写Zip文件主要用到 ZipFile
的 write
函数。
import zipfile
z = zipfile.ZipFile('test.zip', 'w', zipfile.ZIP_DEFLATED)
z.write('test.html')
z.close()
在创建 ZipFile
实例的时候,有2点要注意:
- 要用
'w'
或'a'
模式,用可写的方式打开zip文件; - 压缩模式有
ZIP_STORED
和ZIP_DEFLATED
,ZIP_STORED
只是存储模式,不会对文件进行压缩,这个是默认值,如果你需要对文件进行压缩,必须使用ZIP_DEFLATED
模式。
Python实现批量压缩文件/文件夹——zipfile
zipfile
是Python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的。
在这里对 zipfile
的使用方法做一些记录。即方便自己也方便别人。
zipfile
里有两个非常重要的class,分别是 ZipFile
和 ZipInfo
,在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile
是主要的类,用来创建和读取zip文件,而 ZipInfo
是存储的zip文件的每个文件的信息的。
ZipFile
还提供了如下常用的方法和属性:
- 获取zip文档内指定文件的信息。返回一个
zipfile.ZipInfo
对象,它包括文件的详细信息。 - 获取zip文档内所有文件的信息,返回一个
zipfile.ZipInfo
的列表。 - 获取zip文档内所有文件的名称列表。
- 将zip文档内的指定文件解压到当前目录。参数
member
指定要解压的文件名称或对应的ZipInfo
对象;参数path
指定了解析文件保存的文件夹。 - 解压zip文档中的所有文件到当前目录。参数
members
的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。 - 将zip文档内的信息打印到控制台上。
- 设置zip文档的密码。