2012-07-11 79 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