0

再構築したいテキストファイルがあります。このファイルには、機能、機能の説明(タブのデリム、記述子の数は異なります)、およびその機能を表示しているユーザーのリストが含まれています。次のようになります。

Feature1    detail1    detail2
Person1
Person2
Feature2    detail1    detail2    detail3
Person3

...そして、行ごとに1つの機能があり、記述子の後に人物が行に追加されるように再構築したいので、次のようになります。

 Feature1    detail1    detail2    Person1    Person2
 Feature2    detail1    detail2    detail3    Person3

Python辞書を使いたいのですが。各機能をキーとして読み取り、詳細を値として追加するコードですが、Personsを値として追加するのに問題があります。誰か助けてもらえますか?

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 に答える