Python写入浮动到csv

时间:2018-05-02 15:30:38

标签: python csv

我正在用Python编写一些数据到csv中。我有两个值downloadSpeeduploadSpeed。当数据的值是< 1它被正确写入csv文件( 0.58795654 becames 0.58795654 )。但是,当数据> 1时,浮点值将转换为整数( 2.58795654 becames 258795654 )。这是我的代码:

with open(data_file_path, 'a+', newline='') as csvfile:
 file = csv.writer(csvfile, delimiter=';')
 file.writerow([date,downloadSpeed, uploadSpeed])

我提出的一个解决方案是将float转换为String,然后写入替换'。'的字符串。为','。但是,经过一些阅读,我不知道为什么会这样。

解决方案:

file.writerow([date, str(downloadSpeed).replace(".",","), str(uploadSpeed).replace(".",",")])

修改

问题是Excel接受,.作为浮点数的分隔符< 1但仅接受,作为浮点数的分隔符>这就是我收到错误的原因。

1 个答案:

答案 0 :(得分:0)

这似乎有效

import csv
import datetime

date = datetime.datetime.now()
downloadSpeed = 2.58795654
uploadSpeed = 0.2261624210544645

with open("test.csv", "a+", newline='') as file:
    writer = csv.writer(file, delimiter=';')
    writer.writerow([date,downloadSpeed, uploadSpeed])

输出是: 2018-05-02 15:58:38.294086; 2.58795654;​​ 0.2261624210544645

你在写作之前是否以某种方式改变数字?