剥离空格的python脚本

时间:2018-05-09 13:06:22

标签: python python-2.6

我是python寻找帮助的新手!在这个我有这个字符串,其中包含xml内容。我需要在不同的标签之间去掉空白区域。

<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>

之后看起来像:

<SIMPLE_RETURN><RESPONSE><DATETIME>2018-05-09T12:47:24Z</DATETIME><CODE>2014</CODE><TEXT>Too many concurrent login(s)</TEXT></RESPONSE></SIMPLE_RETURN>

赞赏是否有人可以提供帮助!!

7 个答案:

答案 0 :(得分:1)

如果您不想使用正则表达式,您可以这样做:(对于新手来说,了解其工作方式对我来说也更容易,但我不知道这是否是最好的方法)< / p>

my_str = '<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>'
new_str = ''
for character in my_str:
    if character != ' ':
        new_str = new_str + character

然后,如果你这样做:

print(new_str)

输出是:

'<SIMPLE_RETURN><RESPONSE><DATETIME>2018-05-09T12:47:24Z</DATETIME><CODE>2014</CODE><TEXT>Toomanyconcurrentlogin(s)</TEXT></RESPONSE></SIMPLE_RETURN>'

我能想到的第二种方式是:

new_str = ''.join(my_str.split())

它说'在白色空间拆分my_str,然后加入由此产生的碎片,两者之间没有字符'。 print的输出是相同的。

希望这会有所帮助,但同样,我不知道这些是否是最好的方法。

答案 1 :(得分:1)

另一种方法:

k = "<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>"
k.replace(" ","")
'<SIMPLE_RETURN><RESPONSE><DATETIME>2018-05-09T12:47:24Z</DATETIME><CODE>2014</CODE><TEXT>Toomanyconcurrentlogin(s)</TEXT></RESPONSE></SIMPLE_RETURN>'

答案 2 :(得分:0)

使用正则表达式

<强>实施例

import re
s = """<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>"""
print(re.sub("([\>])\s+([\<])", "\g<1>\g<2>", s))

答案 3 :(得分:0)

您可以使用sub正则表达式函数:

import re

string = "<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>"

result = re.sub(r'> +<', '><', a)
print result

答案 4 :(得分:0)

你走了:

import re
str = "<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>"

str = re.sub("\>\s+",">", str)

答案 5 :(得分:-1)

import re
str = "<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>" 
str = re.sub("([\>])\ +([\<])", "><", str) 
print(str)

答案 6 :(得分:-1)

我认为这很简单。 你只需要一个正则表达式来匹配标签之间的空格

str string = "<SIMPLE_RETURN>  <RESPONSE>    <DATETIME>2018-05-09T12:47:24Z</DATETIME>    <CODE>2014</CODE>    <TEXT>Too many concurrent login(s)</TEXT>  </RESPONSE></SIMPLE_RETURN>
" 
string = re.sub(r">(\s+)<","><",string)