0

我有一个要重组的文本文件。该文件包含功能、功能描述(制表符分隔符,描述符的数量会有所不同),以及显示该功能的人员列表。它看起来像这样:

Feature1    detail1    detail2
Person1
Person2
Feature2    detail1    detail2    detail3
Person3

...我只想对其进行重组,以便每行有一个特征,将人员添加到描述符之后的行上,因此它看起来像这样:

 Feature1    detail1    detail2    Person1    Person2
 Feature2    detail1    detail2    detail3    Person3

我想使用 Python 字典。我的代码将读取每个 Feature 作为键并将详细信息作为值附加,但我无法将 Persons 添加为 values。任何人都可以帮忙吗?

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)

编辑:固定代码缩进

4

1 回答 1

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)
于 2012-07-11T18:24:17.583 回答