在Python中,我们可以使用zipfile模块来读取zip文件中的内容。如果我们只需要读取zip文件中的单个文件,并且知道该文件的类型,那么可以使用不同的方法来读取不同类型的文件。本文将介绍如何根据类型,读取zip文件中单个文件的内容。
1. 读取文本文件
如果我们需要读取zip文件中的文本文件,可以使用ZipFile对象的read()方法来读取文件内容。read()方法的参数是文件名,返回值是文件内容的字节串。我们可以将字节串转换为字符串,以便于处理文件内容。
下面是读取zip文件中文本文件的示例代码:
```python
import zipfile
with zipfile.ZipFile('example.zip', 'r') as myzip:
with myzip.open('example.txt') as myfile:
content = myfile.read().decode('utf-8')
print(content)
```
在上面的代码中,我们首先使用ZipFile对象打开zip文件,并指定模式为'r'(只读)。然后使用open()方法打开zip文件中的文件,并指定文件名。最后使用read()方法读取文件内容,并将字节串转换为字符串。
2. 读取二进制文件
如果我们需要读取zip文件中的二进制文件,可以使用ZipFile对象的read()方法来读取文件内容。read()方法的参数是文件名,返回值是文件内容的字节串。我们可以直接处理文件内容的字节串。
下面是读取zip文件中二进制文件的示例代码:
```python
import zipfile
with zipfile.ZipFile('example.zip', 'r') as myzip:
with myzip.open('example.bin') as myfile:
content = myfile.read()
print(content)
```
在上面的代码中,我们首先使用ZipFile对象打开zip文件,并指定模式为'r'(只读)。然后使用open()方法打开zip文件中的文件,并指定文件名。最后使用read()方法读取文件内容。
3. 读取图片文件
如果我们需要读取zip文件中的图片文件,可以使用Pillow库来加载图片文件。Pillow是Python图像处理库,可以处理多种格式的图像文件。我们可以使用Pillow库的Image.open()方法来加载图片文件,并使用Image对象的方法来处理图片。
下面是读取zip文件中图片文件的示例代码:
```python
import zipfile
from PIL import Image
with zipfile.ZipFile('example.zip', 'r') as myzip:
with myzip.open('example.jpg') as myfile:
with Image.open(myfile) as img:
img.show()
```
在上面的代码中,我们首先使用ZipFile对象打开zip文件,并指定模式为'r'(只读)。然后使用open()方法打开zip文件中的文件,并指定文件名。最后使用Image.open()方法加载图片文件,并使用show()方法显示图片。
#-*- encoding:utf-8 -*-
import zipfile,os
#读取zip中的文件信息
z = zipfile.ZipFile("C:\\1.zip","r")
print z.namelist()
for files in z.namelist():
name,ext = os.path.splitext(files)
if ext == ".txt":
print files
infos = z.read(files)
print infos, type(infos)
# 使用eval转换类型 str2dict
info = eval(infos) #转换之后的数据,可直接入库
print info, type(info)
总结
在Python中,我们可以使用zipfile模块来读取zip文件中的内容。如果我们只需要读取zip文件中的单个文件,并且知道该文件的类型,那么可以使用不同的方法来读取不同类型的文件。对于文本文件,我们可以使用ZipFile对象的read()方法来读取文件内容;对于二进制文件,我们可以直接处理文件内容的字节串;对于图片文件,我们可以使用Pillow库来加载图片文件,并使用Image对象的方法来处理图片。
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
或者点击下方链接