pythons实战:根据类型,读取zip文件中单个文件的内容

 在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】关注后,获取更多,我们一起学习交流。

或者点击下方链接


关于Articulate“做一个知识和技术的搬运工。做一个终身学习的爱好者。做一个有深度和广度的技术圈。”一直以来都想把专业领域的技https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SteveRocket

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值