我有以下代码:
def gettextbyxpath(tree, xpath):
node = tree.xpath(xpath)[0]
try:
text = etree.tostring(node, method="text", encoding='UTF-8').strip()
text = re.sub(' +',' ', text)
text = re.sub('\n+','\n', text)
text = re.sub('\n \n','\n', text)
except:
text = 'ERROR'
return text
在最后一行中,我试图摆脱只有一个空格的线条。实际数据中有很多这些。
当我将上面的代码作为独立测试运行时,它运行正常,但在实际代码中,最后一行根本不做任何事情!我已经尝试比较使用和不使用它生成的文件 - 没有区别。
示例输入:
Brand:
777,Royal Lion
Main Products:
battery, 777, carbon zinc, paper jacket,
我试图摆脱线之间的垂直空白区域。
为什么我的代码可能会像这样表现?
答案 0 :(得分:1)
以下代码应删除,制表符,新行和除单个空格外的空格。
import re
a ="""
Brand:
777,Royal Lion
Main Products:
battery, 777, carbon zinc, paper jacket,
"""
p = re.compile(r'[\n\t]+|[ ]{2,}')
print p.sub('',a)