E' la prima volta che ho a che fare con yield e lambda quindi mi farebbe piacere avere vostro ok su quanto segue.

Devo importare dati da diversi file binari.
Per ognuno devo saltare i primi n byte e poi leggere record di m bytes.


def file_in_chunks(filename, chunksize, headersize):
    with open(filename, 'rb') as f:
        f.seek(headersize)
        while True:
            chunk = f.read(chunksize)
            if len(chunk) < chunksize: break
            yield chunk

file1_records = lambda f: file_in_chunks(f,1024,1024)
file2_records = lambda f: file_in_chunks(f,512,1024)
...


def import_file1
    import os

    f = os.path.join(FILES_ROOT, file1)
    for record in file1_records(f):


Grazie.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a