如何将整数写入文件

时间:2012-01-19 20:00:47

标签: python

我需要写

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)

3 个答案:

答案 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解决方案的优势在于您不必担心这些讨厌的换行符。