escribiendo valores enteros en un archivo usando out.write ()

Estoy generando algunos números (digamos, num) y escribo los números en el archivo de salida usando outf.write(num).
Pero el comstackdor está lanzando un error:

 "outf.write(num) TypeError: argument 1 must be string or read-only character buffer, not int". 

¿Como puedó resolver esté problema?

write () solo toma un solo argumento de cadena , así que puedes hacer esto:

 outf.write(str(num)) 

o

 outf.write('{}'.format(num)) # more "modern" outf.write('%d' % num) # deprecated mostly 

También tenga en cuenta que write no agregará una nueva línea a su salida, por lo que si la necesita, tendrá que suministrarla usted mismo.

Aparte

Usar el formato de cadena le daría más control sobre su salida, por lo que, por ejemplo, podría escribir (ambos son equivalentes):

 num = 7 outf.write('{:03d}\n'.format(num)) num = 12 outf.write('%03d\n' % num) 

para obtener tres espacios, con ceros iniciales para su valor entero seguido de una nueva línea:

 007 012 

El formato () estará disponible durante mucho tiempo, por lo que vale la pena aprenderlo.

cualquiera de estos debería funcionar

 outf.write("%s" % num) outf.write(str(num)) print >> outf, num 
 i = Your_int_value 

Escribe bytes de valor como este por ejemplo:

 the_file.write(i.to_bytes(2,"little")) 

Depende de su tamaño de valor int y el orden de bits que prefiera