在Python中删除空格和不可打印的字符

时间:2014-04-01 19:30:16

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

我使用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”

2 个答案:

答案 0 :(得分:2)

如果您不介意使用regex

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

如果您想要删除任何其他字符,请将其放在[]

答案 1 :(得分:0)

你可以试试这个:

''.join(clump.split())
希望,那将解决问题!为了改善这一点,你可以使用re,我正在使用Sabuj的代码:

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