This is a Python class for parsing and producing MARC data. It reads and writes both MARC21 format records and records in a mnemonic format very similar to that used by Terry Reese's MarcEdit.
The package also includes simple conversion scripts, MarcMaker.py and MarcBreaker.py. MarcMaker converts from the mnemonic-text format to MARC transport (z39.2), and MarcBreaker does the opposite. They are mostly examples of using the parser.
A PHP translation of this code is used in the OpenBiblio library system.
Read MARC data on stdin and print out the author field (100$a) from each record or 'None' if it doesn't have one.
#!/usr/bin/python import sys import MARC p = MARC.Parser(True) def handle(r): print r.get_value('100$a') while 1: buf = sys.stdin.read(8192) if buf=='': break if p.parse(buf) > 0: for r in p.records: handle(r) p.records= p.eof() for r in p.records: handle(r)