繁体   English   中英

使用 python 在 csv 文件中写入数字时出现问题

[英]problem in writing number in csv file using python

我有这个字符串数组:

my_array = ['5.0', '6.066', '7.5', '7.83', '9.75']

我想在我的 csv 文件中写前 3 项。

我正在使用这段代码

n=0
with open("file.csv",'w',newline="",)as e:
    while n<3:
        writer=csv.writer(e)    
        writer.writerow(my_array[n])
        n=n+1    

output 是:

5,.,0
6,.,0,6,6
7,.,5

但我不想用逗号分隔数字,例如 output 必须是:

5.0
6.066
7.5

我应该怎么办?

writerow()想要一个可迭代对象,并且该可迭代对象的每个元素都被写为 csv 的一列。因为字符串是可迭代对象,所以该字符串的每个元素(字符)都被写入一个单独的列。 要解决此问题,请将列表传递给writerow() ,该列表仅包含您的单个字符串

你可以这样做:

import csv

my_array=['5.0', '6.066', '7.5', '7.83', '9.75']

with open('example.csv', 'w+') as f:
    writer = csv.writer(f)
    for elm in my_array[:3]:
        writer.writerow([elm])

示例 Output example.csv

5.0
6.066
7.5

显然你实际上并不想要 CSV(逗号分隔值)文件,所以不要使用csv模块。

只需将列表中的每个字符串写入文件中的单独一行即可。

一些选项是:

with open("file.txt", "w") as f:
    for value in my_array[:3]:
        print(value, file=f)
with open("file.txt", "w") as f:
    f.write("\n".join(my_array[:3]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM