Python equivalent of Perl's Input Record Separator ?
Alex Martelli
aleax at aleax.it
Wed Feb 12 05:01:49 EST 2003
Rich wrote:
> Is there a Python equivalent for $/ ?
>
> I have a large file with records ending in ox0a 0x0a, the records also
> contain \n's
Not directly, but it's not terribly hard to build e.g. a
generator that fulfils your wish. For example (warning,
untested code!):
from __future__ import generators
def irser(fileob, separator):
seplen = len(separator)
block = fileob.read(8192)
while block:
where = block.find(separator)
if where < 0:
moredata = fileob.read(8192)
if moredata:
block += moredata
continue
yield block
return
where += seplen
yield block[:where]
block = block[where:]
to be used as:
for record in irser(open('myf','rb'), '\x0A\x0A'):
process(record)
Alex
More information about the Python-list
mailing list