Я написал программу python для печати каждой строки файла gedcom с его уровнем no и тегом (gedcom - это файл, который в основном является генеалогическим деревом).чтение файлов gedcom и тегов печати
Каждая строка из GEDCOM имеет структуру следующего
<level-number> <tag> <arguments>
Теперь я не хочу, чтобы все метки должны быть напечатаны, но только определенные теги, которые я добавил в списке key_words и для остального я хочу напечатать «недействителен тег". Теперь проблема заключается в том, что «недопустимый тег» печатается каждый раз, даже если соответствующий тег найден и печатается. В принципе, оператор if выполняется каждый раз.
Как я могу исправить эту проблему? Кроме того, как я могу иметь дело с «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