如何从目录中的每个zip文件夹中读取文件

时间:2016-06-05 08:58:40

标签: python zipfile

我在文件夹中有很多zip文件,比如文件夹包含1.zip,2.zip,3.zip等。
每个zip文件夹都包含许多文件。但是它们每个都包含一个名为ans.txt的文件 现在ans.txt的格式如下:
姓名= Devesh
标记= 20
年龄= 23岁 RollNo。= 34343



我想知道包含标记或年龄的zip文件的名称或用户输入的任何属性 我写了以下代码:

    import os
    import glob
    import zipfile
    flag=0
    for zip_name in glob.glob('[0-9].zip'):
        z=zipfile.ZipFile(zip_name,"r")
        with z.open('BAND_META.txt') as f:
            for line in f:
                for word in line.split('='):
                    word=word.strip()
                    if flag==0
                        if word=="Marks"
                            flag=1# flag is intialised as 0
                    elif flag==1
                        if word==marks:#marks is entered by user.
                            print zipfile_name
                            flag=0


现在程序只能运行一个zip文件说1.zip,它不会是2.zip或3.zip。
请帮忙。

1 个答案:

答案 0 :(得分:1)

这是你想要实现的目标吗?

import os
import zipfile

zipfiles = [z for z in os.listdir('.') if z.endswith('.zip')]


for zfile in zipfiles:
    with zipfile.ZipFile(zfile) as z:
        with z.open('ans.txt') as f:
            if b'marks=' in f.read().lower():
                print(z.filename)