【问题标题】:Removing spaces and non-printable character in Python在 Python 中删除空格和不可打印字符
【发布时间】:2014-05-12 18:37:52
【问题描述】:

我正在使用 lxml etree xpath 方法处理 xml 文件。我的代码是

from lxml import etree
File="c:\file.xml"
doc=etree.parse(File)
alltext = doc.xpath('descendant-or-self::text()')
clump = "".join(alltext)
clump

我得到以下输出:

             "'\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\t\n\t\n\t\t\n\t\t\t\n\t\t\t\tIntroduction\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\tAccessibility\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\tOpening eBooks\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\

我想从输出中删除空格和所有制表符,所以我使用另一个代码但未能获得所需的输出
这是代码

import string
filter(lambda x: x in string.printable, clump)

我只想从“Introduction , Accessibilty , Opening eBooks”的输出中获取文本

【问题讨论】:

    标签: python python-2.7 xpath xml-parsing lxml


    【解决方案1】:

    你可以试试这个:

    ''.join(clump.split())
    

    希望,这将解决问题!为了改善这一点,您可以使用 re,我正在使用 Sabuj 的代码:

    >>> import re
    >>> re.sub(r'[\n\t]+', ' ', clump.strip())
    

    【讨论】:

      【解决方案2】:

      如果您不介意使用regex

      import re
      clump = re.sub(r'[\n\t]+', ' ', clump)
      

      如果您想删除任何其他字符,只需将它们放在 [] 内即可

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-14
        • 2020-03-18
        • 2012-06-16
        • 2020-10-08
        • 1970-01-01
        相关资源
        最近更新 更多