diff --git a/pywb/cdx/cdxsource.py b/pywb/cdx/cdxsource.py index daeedc34..ac0eaf74 100644 --- a/pywb/cdx/cdxsource.py +++ b/pywb/cdx/cdxsource.py @@ -28,8 +28,17 @@ class CDXFile(CDXSource): self.filename = filename def load_cdx(self, query): - source = open(self.filename) - return iter_range(source, query.key, query.end_key) + def do_open(): + try: + source = open(self.filename) + gen = iter_range(source, query.key, query.end_key) + for line in gen: + yield line + finally: + source.close() + + return do_open() + #return iter_range(do_open(), query.key, query.end_key) def __str__(self): return 'CDX File - ' + self.filename