我有一个播放列表文本文件。我试图提取艺术家及其歌曲的列表。有39个订单项,它们显示为:
拉什 - 红色部门A
布鲁斯旅行者 - 胡克
这是一个unicode文件。
我试图使用' - '作为分隔符并在那里分割线:
x = open(u'list.txt')
for line in x:
line = line.strip()
elements = line.split('-')
artist = elements[0]
song = elements[1]
我得到了追溯:
Traceback (most recent call last):
File "playlist.py", line 34, in <module>
song = line[1]
IndexError: list index out of range
看来分隔符未被识别。如果我评论出来&#34; song = elements [1]&#34;和印刷艺术家,我得到了完整的文本,分隔符和所有。我已经看到了类似的问题,但是我无法从他们的解决方案中获得足够的洞察力来完成这项工作。任何帮助将不胜感激。
答案 0 :(得分:0)
这是由于划界字符&#39; - &#39;你认为它&#34; - &#34;但它实际上是一个看起来像连字符的不同角色。这个字符不在ASCII表中,所以我们必须告诉python我们将使用utf-8,它几乎覆盖了我们可能正在使用的所有字符。
#-*- coding: utf-8 -*-
x = open(u'songs.txt')
delimiter = '–'
for line in x:
line = line.strip()
elements = line.split(delimiter)
artist = elements[0]
song = elements[1]
print "{artist} {song}".format(artist=artist,song=song)
我以前的答案没有解决问题的根源,但这对我来说也是一次很好的学习经历。