2016-01-21 128 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'