Python如何向CSV文件写入无逗号分隔的浮点数?
问题原因
csv.writer的writerows()方法要求传入的参数为可迭代的行集合,且每一行本身是代表多列数据的可迭代对象。当你直接传入字符串类型的数字时,方法会将字符串拆分为单个字符作为不同列,默认用逗号分隔列,因此出现字符间插入逗号的问题。
解决方法
方案1:遵循csv.writer用法(满足考试CSV要求)
将每个转成字符串的数字包装为单元素列表,代表每一行仅1列,就不会触发字符拆分逻辑,适配Python 3.9.7版本的代码如下:
import csv list1 = [12.34, 17.68, 19.22] output_file_name = "你的目标文件路径.csv" with open(output_file_name, 'w', newline='', encoding='utf-8') as ofile: outfile = csv.writer(ofile) # 每个数字转字符串后包装为单元素列表,构造符合要求的行结构 rows = [[str(num)] for num in list1] outfile.writerows(rows)
补充说明:参数newline=''是Python 3写CSV文件的标准配置,可以避免生成的文件出现多余空行。
方案2:直接写入文件(无需CSV模块的可选方案)
如果不强制要求使用csv模块,也可以直接操作文件对象写入,逻辑更简单:
list1 = [12.34, 17.68, 19.22] output_file_name = "你的目标文件路径.csv" with open(output_file_name, 'w', encoding='utf-8') as ofile: for num in list1: ofile.write(f"{num}\n")
内容的提问来源于stack exchange,提问作者Drnimahz
相关产品推荐
相关产品推荐

