Python Write puede tomar 2 argumentos

Tengo una pregunta para hacer un “output.txt”. Me gustaría escribir los resultados de word y prob (l.19) en un archivo “output.txt”. Cuando escribo “model_file.write (word, prob)”, el terminal me regaña con el mensaje “TypeError: function toma exactamente 1 argumento (2 dados)”. Intenté agregar más argumentos, pero no funcionó. ¿Alguien podría ayudarme con mi pregunta?

Esta es una cuenta de palabras

total_count = 0 train_file = open(sys.argv[1],"r") for line in train_file: words = line.strip().split(" ") words.append("") for word in words:t counts[word] = counts.get(word, 0) + 1 total_count = total_count + 1 model_file = open('output.txt',"w") for word, count in sorted(counts.items(),reverse=True): prob = counts[word]*1.0/total_count print "%s --> %f" % (word, prob) model_file.write(word, prob) model_file.close() 

#

Simplemente reemplaza

model_file.write(word, prob)

con

model_file.write(word+' '+str(prob)+'\n')


Tenga en cuenta que el método write() se implementó para tomar solo un argumento de cadena , por lo que tiene que convertir prob en una cadena (mediante el método str() ) y luego combinarlo con la word con el operador de cadena + , para que tenga Sólo un argumento de cadena.


PD: aunque no ha preguntado esto, tengo que decir que si va a escribir cada palabra y su probabilidad, debe poner model_file.write(word+' '+str(prob)+'\n') en el for statement . De lo contrario, si se resiste a llamarla fuera de la statement for para algún propósito, también debe asignar word y prob fuera de la statement for . O causaría otro error.

Podría usar la statement de print para hacer esto:

 print >>model_file, word, prob