我有一个播放列表文本文件。我试图提取艺术家和他们的歌曲列表。有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
它出现的分隔符不被认可。如果我注释掉“song = elements [1]”和印刷艺术家,我会得到整行文字,分隔符和全部。我看到过类似的问题,但我无法从他们的解决方案中获得足够的洞察力来完成这项工作。任何帮助,将不胜感激。
你确定你有正确的破折号吗?尝试从您正在阅读的文件中剪切并粘贴精确的符号。 – jonrsharpe 2014-08-27 22:39:50
我认为它没有看到短划线,而是使用unicode表示破折号:\ xe2 – 2014-08-27 22:42:44
使用当前的示例它可以工作''Rush - 红色区段A“.split(” - “)'给我'[' Rush','红色部门A']',但是在你编辑你的问题之前你已经有了字符串,这是行不通的。“Jace Everett - 坏事是 - 一个孤独的心的主人”.split(“ - ”)'给出我'''Jace Everett \ xe2 \ x80 \ x93坏事是\ xe2 \ x80 \ x93孤独之心的主人']'。按照@jonrsharpe的想法直接使用文件中的符号 – bvidal 2014-08-27 22:44:56