#!/usr/bin/env PYTHONPATH=/home/matienzo/lib/python2.4/site-packages python2.4 """ archex.py """ import pymarc from PyZ3950 import zoom CATNYP_SERVER = {'host': 'catnyp.nypl.org', 'port': 210, 'db': 'INNOPAC', 'qsyntax': 'PQF', 'rsyntax': 'USMARC', 'element_set': 'F'} BASE_QUERY = '@attr 1=1001 ' def run_query(server, qs): """Creates Z39.50 connection, sends query, parses results""" conn = zoom.Connection(server['host'], server['port'], databaseName=server['db'], preferredRecordSyntax=server['rsyntax'], elementSetName=server['element_set']) out = [] query = zoom.Query(server['qsyntax'], '%s%s' % (BASE_QUERY, qs)) result_set = conn.search(query) for r in result_set: out.append(r) conn.close() return out if __name__ == '__main__': recs = run_query(CATNYP_SERVER, 'p') writer = pymarc.MARCWriter(file('archexout.mrc', 'w')) counter = 0 for rec in recs: marc = pymarc.Record(data=rec.data) writer.write(marc) counter += 1 writer.close() print counter