【发布时间】:2016-06-01 15:47:29
【问题描述】:
我正在使用 Python 开发一个 Twitch IRC Bot,最近我实现了歌曲请求。奇怪的是,我遇到的主要问题是将歌曲存储在单独的文本文件、列表或集合中。目前,这是我为列表检索歌曲的方式:
- !songrequest [URL] 中的用户类型。
- Bot 处理 URL 并从中提取歌曲名称。
- Bot 发送确认消息,并将歌曲名称存储在变量中。
因此,由于歌曲名称都存储在同一个变量中,它会不断地覆盖自身,即使放在一个集合中也是如此。我是 Python 新手,所以如果有人可以帮助我并告诉我如何将每个独特的歌曲标题发送到集合、列表等,我会非常高兴!提前致谢!
我的代码:
if message.startswith("!songrequest"):
request = message.split(' ')[1]
youtube = etree.HTML(urllib.urlopen(request).read())
video_title = youtube.xpath("//span[@id='eow-title']/@title")
song = ''.join(video_title)
requests = set()
requests.add(song + "\r\n")
sendMessage(s, song + " has been added to the queue.")
with open("requests.txt", "w") as text_file:
text_file.write(str(requests))
break
如果您发现任何其他清理我的代码的建议,请在下方告诉我!
【问题讨论】:
-
您希望对文本文件做什么?
-
@tzaman 我还没有考虑过,主要是让我能够通读并播放列出的歌曲,但是我可能会尝试找到一种方法来拉弦在文件中并自动播放它们。
-
那么为什么要一个文件而不是仅仅保存一个内存字典/set/etc?
-
@tzaman 也可以,文本文件只是一个例子。
-
您只需要在某个更持久的地方声明您的集合,而不是每次都创建一个新集合。例如,如果您有一个机器人类,您可以在
__init__方法中输入self.requests = set(),然后在代码中输入self.requests.add。
标签: python python-2.7 bots irc twitch