2012-01-19 17 views
5

muszę napisaćJak napisać liczb całkowitych do pliku

ranks[a], ranks[b], count 

do pliku, za każdym razem w nowym wierszu

Używam:

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

file.close() 

ale to nie jest działa i zwraca

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

Twoje dane wyjściowe są interpretowane jako 3 argumenty funkcji zapisu, co jak pokazuje Twój błąd, może przyjąć tylko 1 argument. Chciałbyś połączyć argumenty w jedną zmienną, a następnie przekazać tę zmienną do funkcji zapisu. – RobB

Odpowiedz

15

Jak podaje komunikat o błędzie, file.write przyjmuje tylko jeden argument. Wypróbuj:

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

Bardziej prawdopodobne "% d'. I nie zapomnij też "\ n" ". – Joe

+0

dziękuję! gdzie mam wstawić "\ n"? – Julia

+2

tutaj 'file.write ("% d% d% d \ n "% (ranks [a], ranks [b], count))' – aayoubi

-1

Odpowiedź Hamish jest poprawna. Ale kiedy czytasz zawartość z powrotem, będziesz czytać je jako strings, a nie jako integers. Więc jeśli chcesz odczytać je jako liczby całkowite lub jakikolwiek inny typ danych, sugerowałbym użycie pewnego rodzaju object serialization, takiego jak pickle.
Dla twoich danych, powinieneś przeczytać this page w oficjalnej dokumentacji. Dla Państwa wygody, jestem wklejając fragment z 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

Brzmi to jak chcesz to wariacja na rachunku print.

Python 2.x:

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

Python 3.x:

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

Zaletą rachunku print nad file.write rozwiązania zaproponowanego powyżej jest to, że nie trzeba się martwić te nieznośne nowe linie.

Powiązane problemy