2012-01-19 25 views
5

tôi cần phải viếtLàm thế nào để viết các số nguyên vào một tập tin

ranks[a], ranks[b], count 

vào một tập tin, mỗi lần trên một dòng mới

Tôi đang sử dụng:

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

file.close() 

nhưng đây không phải là làm việc và trả về

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

Đầu ra của bạn đang được hiểu là 3 đối số cho hàm ghi, như được hiển thị trong lỗi của bạn, chỉ có thể chấp nhận 1 đối số. Bạn sẽ muốn ghép các đối số vào một biến và sau đó chuyển biến đó tới hàm ghi. – RobB

Trả lời

15

Khi lỗi nói, file.write chỉ mất một arg. Hãy thử:

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

Nhiều khả năng '% d' hơn. Và đừng quên ''\ n'' nữa. – Joe

+0

cảm ơn bạn! nơi tôi đặt trong '\ n'? – Julia

+2

tại đây 'file.write ("% d% d% d \ n "% (xếp hạng [a], xếp hạng [b], đếm))' – aayoubi

-1

Câu trả lời của Hamish là chính xác. Nhưng khi bạn đọc nội dung, bạn sẽ đọc chúng như strings chứ không phải là integers. Vì vậy, nếu bạn muốn đọc chúng trở lại dưới dạng số nguyên hoặc như bất kỳ loại dữ liệu nào khác, thì tôi khuyên bạn nên sử dụng một số loại object serialization như pickle.
Để pickle -ing dữ liệu của bạn, bạn nên đọc this page trong tài liệu chính thức. Để tiện cho bạn, tôi đang dán một đoạn từ 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

Có vẻ như bạn muốn có một sự thay đổi trên báo cáo kết quả print.

Python 2.x:

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

Python 3.x:

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

Ưu điểm của việc báo cáo kết quả print so với giải pháp file.write đề xuất ở trên là bạn không cần phải lo lắng về những dòng mới pesky.

Các vấn đề liên quan