Python:解压缩文件,对包含文件应用修改并再次压缩文件

时间:2014-08-10 22:31:32

标签: python xml xslt zipfile

我必须为压缩文件中的文件编写过滤器。所以我将zip文件作为输入,它包含一些xml类型的文件。我用xslt过滤xml。因此文件将被覆盖,最后再次压缩文件。我的代码如下所示:

问题:终止没有例外,但它不起作用。

from lxml import etree
from io import StringIO
import zipfile

def axlFilter(inputfile):

    with zipfile.ZipFile(inputfile) as zip_file:
      for file in zip_file.namelist():
          try:

              xslt_root = etree.XML('''\
                <xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

                <xsl:template match="node() | @*">
                  <xsl:copy>
                      <xsl:apply-templates select="node() | @*"/>
                  </xsl:copy>
                </xsl:template>


                <xsl:template match="TimeStamp"/>
                <xsl:template match="@timeStamp"/>
                <xsl:template match="TimeStamps"/>
                <xsl:template match="Signature"/>

                </xsl:stylesheet>
                ''')

              transform = etree.XSLT(xslt_root)

              doc = etree.parse(file)
              result_tree = transform(doc)

              resultfile = StringIO(unicode(str(result_tree)))
              zipwrite.write_file(file, resultfile)


          finally:
              zip_file.close()

0 个答案:

没有答案