|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zltzlt 于 2020-1-25 16:07 编辑
Python 操作 .zip 压缩文件
.zip 文件格式是一种常见的压缩文件格式。通过 Python 的内置模块 zipfile,我们可以用 Python 轻松操作 .zip 压缩文件。
首先,使用 zipfile,我们需要先导入,并给它起一个简短的别名:
zipfile 中的 ZipFile 对象实现了打开和读取 .zip 文件中的内容。假设我现在在 E 盘创建了一个 1.zip,其结构如下:
- E:\1.zip
- |-- demo.txt
- |-- demo
- |-- 1.txt
复制代码
那么我可以使用以下语句打开 E:\1.zip 压缩文件:
- >>> zipf = z.ZipFile('E:/1.zip')
复制代码
创建完一个 ZipFile 的实例对象,我们可以使用 dir() 查看它拥有的方法及属性:
- >>> dir(zipf)
- ['NameToInfo', '_RealGetContents', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_allowZip64', '_comment', '_didModify', '_extract_member', '_filePassed', '_fileRefCnt', '_fpclose', '_lock', '_open_to_write', '_sanitize_windows_name', '_seekable', '_strict_timestamps', '_windows_illegal_name_trans_table', '_write_end_record', '_writecheck', '_writing', 'close', 'comment', 'compression', 'compresslevel', 'debug', 'extract', 'extractall', 'filelist', 'filename', 'fp', 'getinfo', 'infolist', 'mode', 'namelist', 'open', 'printdir', 'pwd', 'read', 'setpassword', 'start_dir', 'testzip', 'write', 'writestr']
复制代码
可以看到 ZipFile 的功能非常多。这里我们使用 namelist 方法查看 zip 文件包含的所有文件的名称:
- >>> zipf.namelist()
- ['demo/1.txt', 'demo/', 'demo.txt']
复制代码
我们可以使用 open() 方法打开压缩文件中的文件并读取:
- >>> file = zipf.open('demo.txt')
- >>> text = file.read()
- >>> print(text.decode()) # 解码
- 123
- 456
- 789
- !@#
- >>> file.close()
复制代码
可以使用 extractall() 解压压缩文件中的所有文件:
- >>> zipf.extractall("E:/demo") # 解压到 E:/demo 文件夹下
- >>> import os
- >>> os.listdir('E:/demo') # 查看 E:/demo 下的目录与文件
- ['demo', 'demo.txt']
- >>> os.listdir('E:/demo/demo') # 查看 E:/demo/demo 下的目录与文件
- ['1.txt']
复制代码
最后,我们用 close() 方法关闭文件。
|
|