读取gedcom文件并打印标记

2024-09-29 20:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python程序来打印gedcom文件的每一行及其级别号和标记(gedcom是一个基本上是一个家族树的文件)。在

来自gedcom的每一行都有如下结构

<level-number> <tag> <arguments>

现在我不想打印所有的标签,只想打印我在关键字列表中添加的特定标签,其余的我想打印“无效标签”。现在的问题是“无效标记”每次都被打印,即使找到匹配的标记并打印出来。基本上每次都执行if语句。在

我怎样才能解决这个问题?另外,我如何处理“INDI”这个词,因为它没有打印出来

这是我的密码

^{pr2}$

采样线

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 @I1@
2 NAME Nico Rosberg
1 SUBN
1 CHAR UTF-8
0 @I1@ 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 @F1@
0 @I2@ 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 @F1@
1 FAMC @F2@
0 @I3@ 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 @F1@
1 FAMC @F3@

Tags: name标记date标签f1nicoindigedcom
1条回答
网友
1楼 · 发布于 2024-09-29 20:26:26

看来你想要的是:

line_words = line.split()
# get the first element since that is the tag of line
line_tag = line_words[1].strip() 

# check if that is present in the keywords
if line_tag in key_words:
    print "Tag is:-",line_tag,"\n"
else:
    print "invalid tag"

相关问题 更多 >

    热门问题