我需要写
ranks[a], ranks[b], count
到文件,每次都在新行
我正在使用:
file = open("matrix.txt", "w")
for (a, b), count in counts.iteritems():
file.write(ranks[a], ranks[b], count)
file.close()
但这不起作用并返回
TypeError: function takes exactly 1 argument (3 given)
答案 0 :(得分:15)
正如错误所说,file.write
只需要一个arg。尝试:
file.write("%s %s %s" % (ranks[a], ranks[b], count))
答案 1 :(得分:-1)
哈米什的回答是正确的。但是,如果您要阅读内容,则会将其读作strings
而不是integers
。因此,如果您想要将它们作为整数或任何其他数据类型读回来,那么我建议使用object serialization
之类的pickle
。对于pickle
- ing您的数据,请阅读官方文档中的this page。为方便起见,我正在粘贴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" }
答案 2 :(得分:-1)
听起来你想要print
声明的变体。
Python 2.x:
print >> file, ranks[a], ranks[b], count
Python 3.x:
print(ranks[a], ranks[b], count, file=file)
上面提到的print
解决方案相对于file.write
解决方案的优势在于您不必担心这些讨厌的换行符。