将浮点列表写入csv文件

时间:2014-01-29 14:08:27

标签: python csv

我有一个浮点数列表,其格式为:

float_list = [1.13, 0.25, 3.28, ....]

我使用以下代码将其写入.csv文件:

float_str = ""

for result in result_list:
    float_str = float_str + str(result.get_value()) + ","

with open(output_path, "wb") as file:
    writer = csv.writer(file)
    writer.writerow(float_str)

file.close()

其中result.get_value()是:

def get_value():
    return float(value)

我希望在每个单元格中看到有一个值。但是,我得到的是:

1   .   1   3   ,    0   .   2    5   ,  3   .   2   8   ,

似乎每个数字占据一个单元格。

那么,我可以知道如何解决这个问题并得到我的期望吗?

4 个答案:

答案 0 :(得分:7)

writer.writerow()采用序列(列表或元组),但您传入的是字符串。通过传入一个字符串,writer.writerow()仍然将其视为序列,并且每个单独的字符都成为一个列值:

1,.,1,3,,,0,.,2,5,,,3,.,2,8

此外,该方法会将列转换为 ,不要自己执行此操作。

而是构建一个浮点值列表并将其传递给:

row = []
for result in result_list:
    row.append(result.get_value())

with open(output_path, "wb") as file:
    writer = csv.writer(file)
    writer.writerow(row)

甚至:

with open(output_path, "wb") as file:
    writer = csv.writer(file)
    writer.writerow([r.get_value() for r in result_list])

分隔符默认为,

答案 1 :(得分:5)

使用delimiter并编写您不需要将其转换为字符串的列表:

import csv

float_list = [1.13, 0.25, 3.28]

with open(output_path, "wb") as file:
    writer = csv.writer(file, delimiter=',')
    writer.writerow(float_list)

输出:

  

1.13,0.25,3.28

自从您使用with

后,还有无需关闭文件

修改

@Martijn Pieters:分隔符,是默认值。

来自Docs

  

用于分隔字段的单字符字符串。它默认为','。

此行writer = csv.writer(file, delimiter=',')可以是writer = csv.writer(file)

答案 2 :(得分:1)

以下代码将浮点数列表写入csv文件。

import csv

float_str=['1.500','2.48933','7.36945']

with open('output_path','w',newline='') as file:

    write=csv.writer(file, delimiter='\n')
    for num in float_str:
        write.writerow(num)

答案 3 :(得分:0)

我只想将一个数字(如1234)写入csv文件(delimiter=' '),它最终会像1 2 3 4一样。 我从另一个网站得到了以下答案,但想在此分享:

number = 1.13
writer.writerow([number])