Python csv.writer控制精度

Python csv.writer控制精度,python,csv,format,precision,Python,Csv,Format,Precision,我像这样使用标准的csv.writer wr = csv.writer(f,csv.QUOTE_NONNUMERIC) wr.writerows(output) 我希望能够格式化csv文件,使每个列都有%3.4e。输出是一个二维列表。现在,它似乎在用存储值的任何精度(可以是可变的)写出它。在编写代码时,我也不知道每个维度的大小,特别是每行中有多少个元素,所以我不能简单地写出一个大的格式字符串。有没有一种简单的方法可以使用csv.writer以一定的精度写入每个数值?您仍然可以使用格式字符串在任

我像这样使用标准的csv.writer

wr = csv.writer(f,csv.QUOTE_NONNUMERIC)
wr.writerows(output)

我希望能够格式化csv文件,使每个列都有%3.4e。输出是一个二维列表。现在,它似乎在用存储值的任何精度(可以是可变的)写出它。在编写代码时,我也不知道每个维度的大小,特别是每行中有多少个元素,所以我不能简单地写出一个大的格式字符串。有没有一种简单的方法可以使用csv.writer以一定的精度写入每个数值?

您仍然可以使用格式字符串在任意长度的列表上输出,尽管您可能希望使用csv.QUOTE\u NONE:

wr = csv.writer(f, quoting=csv.QUOTE_NONE)
for i in output:
    wr.writerow(['{:3.4e}'.format(x) for x in i])

似乎是您自己编写代码将数值转换为字符串格式,然后输出这些字符串。如果没有更多的代码,就很难更加具体。我只是填写另一个文件的输出和一些计算。它基本上只是一个2d数组,所有的浮点数。在我写它之前,我如何格式化它?我对python有点陌生,我尝试用大小的通用参数创建一个格式化列表,但没有成功。好的,在这种情况下,@achampion的答案就是您需要做的。