我有这个字符串数组:
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]))