2012-01-19 22 views
5

necesito escribirCómo escribir números enteros en un archivo

ranks[a], ranks[b], count 

a un archivo, cada vez en una nueva línea

estoy usando:

file = open("matrix.txt", "w") 
for (a, b), count in counts.iteritems(): 
    file.write(ranks[a], ranks[b], count) 

file.close() 

pero esto no es trabajando y devuelve

TypeError: function takes exactly 1 argument (3 given) 
+0

Su salida se interpreta como 3 argumentos para la función de escritura, que como se muestra en su error, solo puede aceptar 1 argumento. Querrá concatenar los argumentos en una variable y luego pasar esa variable a la función de escritura. – RobB

Respuesta

15

Como dice el error, file.write solo toma una arg. Pruebe:

file.write("%s %s %s" % (ranks[a], ranks[b], count)) 
+8

Más probable '% d'. Y no olvides ''\ n'' también. – Joe

+0

¡gracias! ¿Dónde pongo '\ n'? – Julia

+2

aquí 'file.write ("% d% d% d \ n "% (rangos [a], rangos [b], recuento))' – aayoubi

-1

La respuesta de Hamish es correcta. Pero cuando leería los contenidos, los leería como strings y no como integers. Por lo tanto, si desea volver a leerlos como enteros o como cualquier otro tipo de datos, le sugiero que utilice algún tipo de object serialization como pickle.
Para pickle -sus datos, debe leer this page en la documentación oficial. Para su comodidad, estoy pegando un fragmento de here:

# Save a dictionary into a pickle file. 
import pickle 
favorite_color = { "lion": "yellow", "kitty": "red" } 
pickle.dump(favorite_color, open("save.p", "wb")) 


# Load the dictionary back from the pickle file. 
import pickle 
favorite_color = pickle.load(open("save.p", "rb")) 
# favorite_color is now { "lion": "yellow", "kitty": "red" } 
-1

suena como desea una variación en el estado de print.

Python 2.x:

print >> file, ranks[a], ranks[b], count 

Python 3.x:

print(ranks[a], ranks[b], count, file=file) 

La ventaja de la declaración sobre la solución printfile.write propuesto anteriormente es que usted no tiene que preocuparse esas nuevas líneas molestas.

Cuestiones relacionadas