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



我有这个字符串数组:

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    

输出为:

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

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

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])

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]))

相关内容

  • 没有找到相关文章

最新更新