从zip匹配并读取文件

时间:2012-09-28 11:03:49

标签: python zip zipfile

我需要打开一个manifest.v3文件并阅读版本字段(xml文件),为此,我使用以下代码:

from zipfile import ZipFile
zf = ZipFile("somezip.zip")
for name in zf.namelist():
    if name.find("manifest.v3")  >= 0:
        for line in zf.read(name).split("\n"):
            for match in  re.findall(r'<value name="version">([0-9].*?)</value>',line):
                parts=match.split(".")
                localVersion=parts[1]
                print localVersion
zf.close()

上面的代码运行良好,但有时在zipfile上我有manifest.v3文件和manifest.v3.oldmanifest.v3.old.old等等。

我如何保证只获得manifest.v3文件的结果?而不是所有其他人?

1 个答案:

答案 0 :(得分:0)

尝试将条件name.find("manifest.v3") >= 0更改为name == "manifest.v3"

在下面添加了几个例子

In [181]: name = "manifest.v3"

In [182]: name.find("manifest.v3") >= 0
Out[182]: True

In [183]: name = "manifest.v3.old.old"

In [184]: name.find("manifest.v3") >= 0
Out[184]: True

In [185]: name == "manifest.v3"
Out[185]: False

In [186]: name = "manifest.v3"

In [187]: name == "manifest.v3"
Out[187]: True