Python:如何将某个键的值写入文件?

时间:2015-08-14 06:48:06

标签: python

我有一个名为" list"的列表。它包含两个词典。我正在以dict [count],dict [count + 1]来访问这些词典。

现在我必须检查一个键是否为版本。然后我把代码编写为

filename = "output.txt"
fo = open(filename, "a")
for key1,key2 in zip(dict[count].keys(),dict[count+1].keys()):
   if key1 == 'version':
      # print "value of version:", (dict[count])[key]
      fo.write("value of version:",(dict[count])[key])
   if key2 == 'version':
      # print "value of version:", (dict[count+1])[key]
      fo.write ("value of version:", (dict[count+1])[key2])

这里我可以打印版本的值,但我无法写入文件。

错误:TypeError:函数只需1个参数(给定2个)

2 个答案:

答案 0 :(得分:3)

fo.write()函数必须只有一个参数。你提供了两个参数,所以它不起作用。请参阅下面的行并使用它。

fo.write("value of version:%s"%(dict[count])[key])
fo.write ("value of version:%s"%(dict[count+1])[key2])

答案 1 :(得分:1)

你不能像file.write()那样print()传递多个对象以逗号分隔打印(作为元组),这就是你得到错误的原因。您应该使用string.format()正确格式化字符串。

示例 -

filename = "output.txt"
fo = open(filename, "a")
for key1,key2 in zip(dict[count].keys(),dict[count+1].keys()):
   if key1 == 'version':
      # print "value of version:", (dict[count])[key]
      fo.write("value of version:{}".format(dict[count][key1]))
   if key2 == 'version':
      # print "value of version:", (dict[count+1])[key]
      fo.write ("value of version:()".format(dict[count+1][key2]))

另外,不确定为什么你需要做拉链和所有,你可以简单地做 -

filename = "output.txt"
fo = open(filename, "a")
if 'version' in dict[count]:
    fo.write("value of version:{}".format(dict[count]['version']))
if 'version' in dict[count+1]:
    fo.write("value of version:{}".format(dict[count+1]['version']))