gedcom ohne Medien

Zum Austausch von Daten zwischen Gramps[1] und webtrees[2] exportiere ich die Daten aus Gramps als gedcom-Datei. Da ich zahlreiche Fotos zum Stammbaum habe, werden diese Mediendateien mitgeliefert. In webtrees werden diese Mediendateien jedoch nicht gefunden und müssen bereinigt werden.

Wenn diese Mediendateien nicht mitgeliefert werden respektive aus der gedcom-Datei entfernt wird, dann entfällt die Bereinigung. Ich habe für mich deshalb ein kleines Programm mit Python geschrieben, welches diese Daten für mich löscht.

from future import absolute_import, division, print_function
Startobjekt für Suche
objectFrom = '0 @O0000@ OBJE'
Endobjekt für Suche
objectTo = '0 TRLR'
dateiInput = input("Input File: ")
suchString = '1 OBJE'
Definition Outputdatei
dateiOutput = dateiInput[:dateiInput.find(".",0,len(dateiInput))] + "_new." + dateiInput[dateiInput.find(".",0,len(dateiInput))+1:]
Suchfunktion zum finden von bestimmten Zeichen in Zeile
def main(fileName, search):
with open(fileName, 'r') as lines:
result = next(
(i for i, line in enumerate(lines, 1) if line.rstrip() == search),
0
)
return result
if name == 'main':
rowA = main(dateiInput, objectFrom)
rowB = main(dateiInput, objectTo)
Zeilennummer korrigieren
rowA = rowA - 1
rowB = rowB - 2
neue Datei erstellen ohne Zeilen zwischen rowA und rowB
infile = open(dateiInput,'r').readlines()
with open(dateiOutput,'w') as outfile:
for index,line in enumerate(infile):
if index < rowA: #wenn Suchstring nicht in vorhanden, dann Zeile ausgeben if suchString not in line: outfile.write(line) if index > rowB:
outfile.write(line)
  1. Homepage Gramps, https://gramps-project.org
  2. Homepage webtrees, https://webtrees.net