如何循环字典并将密钥的名称写为输出文件的名称?

时间:2014-01-31 15:07:04

标签: python

我想循环遍历字典并为字典中的每个键创建一个输出文件,并使用该键作为输出文件的名称。这就是我试过的:

for id, pos in PNposD.iteritems():
  print id, 'id'
  print pos, 'pos'
  ofh = open("/home/",id,"_candMuts.txt")
  ofh.write("%d\n" % (pos))

这是我在尝试打开输入文件的行中得到的错误消息(第4行):

TypeError: file() takes at most 3 arguments (4 given)

3 个答案:

答案 0 :(得分:5)

使用str.format。您应该使用写入模式(w)打开文件,以便向文件写入内容。

for id, pos in PNposD.iteritems():
    print id, 'id'
    print pos, 'pos'
    with open("/home/{}_candMuts.txt".format(id), 'w') as ofh:
        ofh.write("%d\n" % (pos))

答案 1 :(得分:0)

  ofh = open("/home/%d_candMuts.txt"%id, "w")

答案 2 :(得分:0)

不是将文件名的三个部分作为open的单独参数,而是通过任何常用方法将它们连接在一起:

import os.path
open(os.path.join("/home", "%s_candMuts.txt" % id)

最好不要使用id作为名称,因为它也是一个内置函数。