python中csv库的writer函数_指定格式csv.writer在Python中

  • Post author:
  • Post category:python


我正在使用csv.DictWriter从一组词典输出csv文件。我使用以下函数:def dictlist2file(dictrows, filename, fieldnames, delimiter=’\t’,

lineterminator=’\n’):

out_f = open(filename, ‘w’)

# Write out header

header = delimiter.join(fieldnames) + lineterminator

out_f.write(header)

# Write out dictionary

data = csv.DictWriter(out_f, fieldnames,

delimiter=delimiter,

lineterminator=lineterminator)

data.writerows(dictrows)

out_f.close()

其中dictrows是字典的列表,fieldnames提供应该序列化到文件的头。在

我的字典列表(dictrows)中的一些值是数字的——例如float,我想指定这些值的格式。例如,我可能希望使用“%.2f”而不是完全精度来序列化浮点。理想情况下,我想指定某种映射来说明如何格式化每种类型,例如

^{pr2}$

也就是说,如果你看到一个浮点数,用%.2f格式化它。有没有一种简单的方法可以做到这一点?我不想给DictWriter或任何类似的复杂的子类——这看起来是非常通用的功能。在

如何做到这一点?在

我能想到的另一个解决方案是:不要搞乱DictWriter的格式,只需使用decimal包将float的十进制精度指定为%.2,这将导致序列化。不知道这是不是更好的解决办法?在

非常感谢你的帮助。在