私はgedcomファイルの各行をそのレベル番号とタグで印刷するためのpythonプログラムを作成しました(gedcomは基本的にはファミリーツリーのファイルです)。gedcomファイルと印刷タグを読む
<level-number> <tag> <arguments>
今、私はすべてのタグを印刷する必要はありませんが、私はkey_wordsリストに、私は「無効印刷したい残りの追加だけで特定のタグを次のようにGEDCOMから各行は構造を有していますタグ"。今、問題は、一致するタグが見つかって印刷されても、「無効なタグ」が毎回印刷されるということです。基本的に文が毎回実行される場合
この問題を解決するにはどうすればよいですか?また、それはここ
を印刷取得されていないとして、私は「INDIという言葉に対処することができますどのように私のコードは
key_words = ['INDI','NAME','SEX','BIRT','DEAT','FAMC','FAMS','FAM','MARR','HUSB','WIFE','CHIL','DIV','DATE','HEAD','TRLR','NOTE']
#opening file
text_file = open('C:\Users\shree\Canopy\My-Family-18-May-2016-582.ged', 'r')
print "Printing each line of gedcom file followed by level no and tag line"
for line in text_file:
print "line is:-", line
level_number = int(line[:1])
print "Level number is",level_number
line = line.split()
for word in key_words:
if word in line:
print "Tage is:-",word,"\n"
else:
print "invalid tag"
サンプルライン
0 HEAD
1 SOUR Family Echo
2 WWW http://www.familyecho.com/
1 FILE My Family
1 DATE 18 MAY 2016
1 DEST ANSTFILE
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
1 SUBM @[email protected]
2 NAME Nico Rosberg
1 SUBN
1 CHAR UTF-8
0 @[email protected] INDI
1 NAME Nico /Rosberg/
2 GIVN Nico
2 SURN Rosberg
2 _MARNM Rosberg
1 SEX M
1 BIRT
2 DATE 21 MAR 1989
1 FAMC @[email protected]
0 @[email protected] INDI
1 NAME Tom /Rosberg/
2 GIVN Tom
2 SURN Rosberg
2 _MARNM Rosberg
1 SEX M
1 BIRT
2 DATE 15 MAR 1958
1 FAMS @[email protected]
1 FAMC @[email protected]
0 @[email protected] INDI
1 NAME Laisly /Vettle/
2 GIVN Laisly
2 SURN Vettle
2 _MARNM Rosberg
1 SEX F
1 BIRT
2 DATE 15 SEP 1958
1 FAMS @[email protected]
1 FAMC @[email protected]
たとえば、ファイル自体からいくつかの行を追加してください。 – AKS