我正在使用python 3创建具有不同数据类型的csv文件,其中之一是float。字符串和整数正确显示在生成的文件上,但是浮点数变为大整数,而不保留小数。例如,64.5232323
变为645.232.323
。
数据按数组组织,我正在使用python的csv
模块。这是写入文件的代码:
index_file_exists = os.path.isfile(full_dir+index_filename)
with open(full_dir+index_filename, 'a+') as f:
csv_file = csv.writer(f, delimiter=";")
csv_file.writerow(index_line)
index_line
是包含该行所有数据的数组。我尝试将float转换为格式化的字符串,如:
index_line[12] = "%.5f" % index_line[12]
但是使用Excel打开时,该值仍显示为整数。如果使用记事本之类的文本编辑器打开,则浮点数将正确显示。我不经常使用excel或csv文件,因此我很茫然。有什么建议吗?
答案 0 :(得分:1)
检查Excel的区域设置/区域。
如果您的地区指定“。”为“千位分隔符”,则格式化后的数字将被视为整数。
并使用str.format()
函数,该函数具有对语言环境敏感的格式化程序:
# Python < 3.6
index_line[12] = "{:.5n}".format(index_line[12])
# Python >= 3.6
index_line[12] = f"{index_line[12]:.5n}"