删除不在python中工作的空间

时间:2013-02-08 22:50:31

标签: python space xbmc

我有一个代码,它取xbmc的音乐标题,我想把它放在一个url中发送它。但是urllib不喜欢标题中的空格代码:

 if xbmc.Player().isPlayingAudio() and audio != 1 :
    audio = 1
    urllib2.urlopen('http://%s:3480/data_request?id=variableset&DeviceNum=%s&serviceId=urn:upnp-org:serviceId:XBMCState1&Variable=PlayerStatus&Value=playing_audio' % (ip, dev)) 
    tag = xbmc.Player().getMusicInfoTag()
    title = tag.getTitle()
    title.replace(" ", "_")
    print ("playing:" + title)

然而,当检入日志文件时,空间仍然存在。我想要的是(标题= 69的夏天)到(标题= summer_of_69),如果可能的话,也将(')转换为空白

由于 话筒

2 个答案:

答案 0 :(得分:3)

str.replace不是一个就地操作 - 因为字符串是不可变的,它返回一个新的字符串,所以你需要事后分配。 title = title.replace(' ', '_')

或者,只需将print更改为:print('playing:', title.replace(' ', '_'))

即可

如果您只想要某些角色,那么您可以执行以下操作:

>>> import re
>>> track = "summer       of      '69"
>>> re.sub('[^a-z0-9]+', '_', track, re.I)
'summer_of_69'

其中包含任何不是ascii字母,数字并将其缩小为单个'_'的内容。

答案 1 :(得分:0)

试试这个:

title = title.replace(" ", "_")

title.replace()不会替换原始字符串中的文本,它会创建一个与原始字符串相等的新字符串,并替换。您所要做的就是获取该方法的返回值,并将其放在原始变量的位置。