为什么输出文件不起作用但是print语句呢?

时间:2012-09-04 20:13:28

标签: python

我有以下代码:

for node, value in sorted(d.iteritems()):
    outfile.write([node] + value)
    print(node, value)

我读了几个不同的SO帖子,但仍然有些困惑。 print语句完美地工作,在解释器中正确打印键和值。但我无法找到一种方法来让outfile.write()语句在这里工作。非常感谢任何澄清!

1 个答案:

答案 0 :(得分:3)

print自动将给定变量转换为字符串(使用__repr__方法)。 file.write没有。您仍然可以使用以下内容写入文件:

outfile.write("%s %s\n" % (node, value))

(我还添加了换行符)。但是,您没有在问题中明确nodevalue的类型。表达式[node] + value表示value是一个列表。如果您希望列表以逗号分隔(如问题标题所示),您可以将它们组合起来并使用逗号连接它们,如下所示:

outfile.write(",".join(map(str, [node] + value)))