Python3如何将float浮点数垂直写入CSV文件避免字符拆分
浮点数列表垂直写入CSV被拆分的解决办法
问题根源
csv.writer的writerows()方法要求传入「行序列的序列」结构:外层序列代表所有行,内层的每个元素代表一行的所有字段。你直接将仅包含float元素的列表传入writerows()时,方法会将每个float转为字符串后按字符遍历,每个字符作为单独一列写入,就出现了带逗号的数值被拆分为多列的情况。
修复方案
方案1:调整写入结构适配csv模块规则
把每个数值包装为单元素列表,保证每行只有一个字段,不会被拆分:
import csv babah = [] # 你的float列表 with open('ja.csv', 'w', newline='', encoding='utf-8') as uu: dw = csv.writer(uu) # 每个数值包装为单元素列表,对应一行一列 dw.writerows([[num] for num in babah])
如果你的数值用逗号作为小数分隔符(例如区域格式下的6,03333),可以指定CSV的列分隔符为其他字符避免冲突:
# 用分号作为列分隔符 dw = csv.writer(uu, delimiter=';')
方案2:直接逐行写入(无需csv模块)
如果你的CSV只有一列,不需要处理多列分隔规则,直接写字符串更简单:
babah = [] # 你的float列表 with open('ja.csv', 'w', encoding='utf-8') as uu: for num in babah: # 注意如果是逗号作为小数分隔符,这里直接输出对应格式的字符串即可 uu.write(f"{num}\n")
内容的提问来源于stack exchange,提问作者Seeyavash
相关产品推荐
相关产品推荐

