2012-07-11 75 views
0

我有一個我想重構的文本文件。該文件包含功能,功能描述(製表符分隔符,描述符數量會有所不同)以及顯示該功能的人員列表。它看起來像這樣:Python:通過字典重構有序的文本文件

Feature1 detail1 detail2 
Person1 
Person2 
Feature2 detail1 detail2 detail3 
Person3 

...我只是想重組它,以便有每行一個特徵,與人上漲到行描述後,所以它看起來像這樣:

Feature1 detail1 detail2 Person1 Person2 
Feature2 detail1 detail2 detail3 Person3 

我想使用Python字典。我的代碼將讀取每個功能作爲一個鍵,並將細節作爲值添加,但我無法將人物添加爲值。誰能幫忙?

import re 
import sys 
import csv 

def reformat(filename): 
    mydict = dict() 
    for line in filename: 
     m = re.search("\AFeature",line[0]) 
     if m: 
      if str(line) in mydict: 
       mydict[line].append(line[0]) 
      else: 
       mydict[line[0]] = (line[1:-1]) 
    print(mydict) 

thefilename = "path" 
path_reader=csv.reader(open(thefilename), delimiter = "\t") 
rv = reformat(path_reader) 

編輯:固定的代碼縮進

+0

你的縮進是錯誤的,模糊的,請修復它。 – 2012-07-11 18:13:11

+0

這是錯的,我修好了。我的錯誤 – alexhli 2012-07-11 18:31:05

回答

1

我只是改變了if ... else部分:

def reformat(filename): 
    mydict = dict() 
    feature = '' 
    for line in filename: 
     m = re.search("\AFeature",line[0]) 
     if m: 
      feature = line[0] 
      mydict[feature] = (line[1:-1]) 
     else: 
      mydict[feature].append(line[0]) 
print(mydict) 
+0

謝謝你,它的工作。我仍然在努力理解字典類型,但這個練習有所幫助 – alexhli 2012-07-11 18:33:07