我有一个代码,它取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),如果可能的话,也将(')转换为空白
由于 话筒
答案 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()不会替换原始字符串中的文本,它会创建一个与原始字符串相等的新字符串,并替换。您所要做的就是获取该方法的返回值,并将其放在原始变量的位置。