我正在用Python编写一些数据到csv中。我有两个值downloadSpeed
和uploadSpeed
。当数据的值是< 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但仅接受,
作为浮点数的分隔符>这就是我收到错误的原因。
答案 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
你在写作之前是否以某种方式改变数字?