开始代码:
import csv
def storFile(data,fileName):
with open(fileName,'w',newline ='') as f:
mywrite = csv.writer(f)
for i in data:
mywrite.writerow(i)
data = [1,0,1,1,0,1,0]
storFile(data,'splitData\wodecesi.csv')
报错:
<ipython-input-33-5de04d85deaa> in storFile(data, fileName)
4 mywrite = csv.writer(f)
5 for i in data:
----> 6 mywrite.writerow(i)
7 data = [1,0,1,1,0,1,0]
8 storFile(data,'splitData\wodecesi.csv')
Error: iterable expected, not int
查阅资料发现: csv 的writerow 函数只能写入一个序列,比如 list 或 array.
修改方法:
(1) 直接读取整个列表:fsdg
import csv
def storFile(data,fileName):
with open(fileName,'w',newline ='') as f:
mywrite = csv.writer(f)
mywrite.writerow(data)
data = [1,0,1,1,0,1,0]
storFile(data,'splitData\wodecesi.csv')
所得csv文件中,列表元素为 1 0 1 1 0 1 0 排列;
(2)先将每个元素转换为小列表,再存储:
import csv
def storFile(data,fileName):
data = list(map(lambda x:[x],data))
with open(fileName,'w',newline ='') as f:
mywrite = csv.writer(f)
for i in data:
mywrite.writerow(i)
data = [1,0,1,1,0,1,0]
storFile(data,'splitData\wodecesi.csv')
(3)使用pands的to_csv 函数:
data.to_csv('splitData\wodecesi.csv',index = False)
(2)和(3)所得文件中,元素为纵向排列:
1
0
1
1
0
1
0