2016-01-21 105 views
-1

我使用Python 2.7版,我需要做一些算法,我需要一些帮助: 功能需要读取一些数据:数据模型是这样的:从.txt文件到词典

#some_album * SONG_NAME ::作者::时间:: song_lyrics

遍布txt文件,我需要进入像每一个位置:专辑名称和使用功能split()歌曲名称。 我有一些问题:

  1. 我怎么可以使用两个characters-例子之间的分裂():到专辑名称,拆分之间#为* ????
  2. 我想把所有的txt文件分割成字典,相册是关键字,值是另一个字典,其关键字是歌曲名称,值是歌曲中所有歌词的列表。山问题是我怎么可以做一个循环或任何其他的想法,因为我想它分割船体txt文件,而不仅仅是他的一部分。 这是我做的到现在为止:

    data_file = open("<someplace>","r") 
    data = data_file.readlines() 
    data = str(data) 
    i=0 
    for i in data: 
        albums= {data.split('#','*')[0] : data.split("::")[0]} 
    

    只打印这张专辑和第一首歌曲的名称。我不明白如何做一些循环?

+0

如果您编辑问题以包含文本文件中的一些示例行以及您希望得到的输出,那将会很有帮助。 –

+0

您可以在'*'处分割,然后将'[0]'元素保存为相册名称。在'::'上执行另一个分割,并将'[0]'元素保存为第一首歌曲的名称。 另一种选择是使用正则表达式。 – deltashade

回答

0

提到你的第一个问题,我建议使用“正则表达式操作模块”re这个。

>>> import re 
>>> str = 'py=th;on' 
>>> lst = re.split("=|;",str) 
>>> lst[1] 
'th'