如何在Python字符串中添加空格?
我刚开始学习Python(用的是v2.7.3),想测试一下自己的技能,于是决定编辑一个文本文件,这个文件里记录了我手机收到的所有短信。我想把一些没用的信息删掉,所以写了一个脚本来处理,但发现所有单词之间的空格都被删掉了。
这是我输入的数据示例:
sms protocol="932" address="XXXXXXXXXX" date="1305655717379" type="1" subject="null" body="Talk to joey?" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" date_sent="null" readable_date="May 17, 2011 2:08:37 PM" contact_name="David XXXX" />
这是我输出的数据示例:
body="Talktojoey?"toa="null"sc_toa="null"service_center="null"read="1"status="-1"locked="0"date_sent="null"readable_date="May17,20112:08:37PM"contact_name="DavidXXXX/>
这是我的代码:
line= textfile.readline()
for line in textfile:
line = line.strip()
line = line.split(' ')
del line[0:6]
line.append("\n")
print line
output.writelines(line)
textfile.close()
output.close()
如果有人能帮我加上空格,我会非常感激。谢谢!
3 个回答
这段代码...
line = line.split(' ')
在把内容分成小块的时候,会把空格去掉。你需要把空格再加回去:
line = line.split(' ')
del line[0:6]
line = ' '.join(line)
line += "\n"
print line,
output.write(line)
如果你仔细看看你的数据行,你会发现它其实是一个xml片段,但缺少了开头的'<'。只要你加上'<',就会变成一个'sms'的xml元素。
>>> input = '<sms protocol="932" address="XXXXXXXXXX" date="1305655717379" type="1" subject="null" body="Talk to joey?" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" date_sent="null" readable_date="May 17, 2011 2:08:37 PM" contact_name="David XXXX" />'
现在我们可以用像ElementTree这样的工具来处理它。
>>> import xml.etree.ElementTree as ET
>>> element = ET.fromstring(input)
这样你就可以像使用一个友好的字典一样访问标签的属性了。
>>> element.attrib
{'body': 'Talk to joey?', 'service_center': 'null', 'protocol': '932', 'read': '1', 'sc_toa': 'null', 'readable_date': 'May 17, 2011 2:08:37 PM', 'date': '1305655717379', 'status': '-1', 'address': 'XXXXXXXXXX', 'date_sent': 'null', 'locked': '0', 'contact_name': 'David XXXX', 'toa': 'null', 'type': '1', 'subject': 'null'}