Error al usar `struct.pack` para escribir datos en el archivo

tengo unnumpy.ndarray muestra de números, cada uno entre 1 y2**20.

Me gustaría escribirlo en un archivo binario, de modo que cada elemento esté representado por cuatro bytes.

Sin embargo, el tamaño del archivo resultante es diferente de 4 veces el tamaño de la muestra.

Este es el código que estoy usando:

        outputFile = open('testDS', 'w')
        print len(sample)
        if (outputFile is not None):
            for s in sample:
                assert(s < 2**20)
                r = struct.pack("i", s)
                assert(len(r) == 4)
                outputFile.write(r)
        outputFile.close()

La salida que obtengo (el tamaño de la muestra) es: 1000

Sin embargo, el tamaño del archivo resultante es 4026 bytes.

¿Alguna idea de por qué el tamaño del archivo no es exactamente 4000 bytes?

Respuestas a la pregunta(1)

Su respuesta a la pregunta