Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 匹配并从zip读取文件_Python_Zip_Zipfile - Fatal编程技术网

Python 匹配并从zip读取文件

Python 匹配并从zip读取文件,python,zip,zipfile,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.fi

我需要打开一个
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导入zipfile
zf=ZipFile(“somezip.zip”)
对于zf.namelist()中的名称:
如果name.find(“manifest.v3”)>=0:
对于zf.read(name.split(“\n”)中的行:
对于有关findall的匹配(r'([0-9].*?),行):
零件=匹配。分割(“.”)
localVersion=部件[1]
打印本地版本
zf.close()
上面的代码工作得很好,但有时在zipfile上我有
manifest.v3
文件和
manifest.v3.old
manifest.v3.old.old
等等


我如何保证只获取
manifest.v3
文件的结果?取而代之的是所有其他的?

尝试将条件
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

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