前提:
导入csv模块:
#首先导入csv模块
import csv
举例的.csv数据:
商品分类名称,预期结果
111111111111111111111,商品分类名称输入有误,请重新输入。
雨伞,以下为搜索到的商品信息!
特别说明:
写之方法和读之方法为相对独立的写法。
写之方法:
准备写入文件的数据:
#把要写入的数据分类成header标题和data具体内容两个列表形式(data里面每条记录要设为一个小列表):
header=['商品分类名称','预期结果']
data=[['111111111111111111111','商品分类名称输入有误,请重新输入。']['雨伞','以下为搜索到的商品信息!']]
open()函数:
#用open函数覆盖或创建一个csv文件,返回一个可操作的文件变量:
with open('mydata.csv',w,encoding='utf-8-sig',newline='') as csv_file #这里newline参数后为连续的双单引号
csv.writer()类:
#下面代码是创建了csv.writer类((构造方法之)参数:可操作的文件变量)的取名为writer的对象,以在之后调用类的writerow()和writerows()方法。
wri=csv.writer(csv_file)
writerow()和writerows()方法:
#这里的说明可以看:Python csv的writerow()和writerows()区别-CSDN博客,writer()类对象.writerow(参数:可以是每个元素为字符串的列表,最终结果只有一行),writer类对象.writerows(参数:可以是每个元素为1个小列表的大列表,里面的每个小列表元素将成为csv文件的每1行)
wri.writerow(header)
#指针已在标题后
wri.writerows(data)
写之方法完毕。
读之方法:
首先,创建一个空列表:
dataList=[]
open()函数:
#用open函数打开csv文件,返回一个可操作的文件变量:
with open('mydata.csv',r,encoding='utf-8-sig',newline='') as csv_file:
csv.reader()类:
#将这个可操作的文件变量使用csv模块的reader(构造参数:那个可操作的文件变量名)类成为一个迭代器(遍历这个迭代器返回一个个列表):
rea=csv.reader(csv_file)
next()函数:
'''
上一条那个迭代器,有着迭代器的特性,可以用for循环遍历,所以也可以使用next(参数:迭代器名)函数来实现迭代(迭代出下一个,最先指针在开头,所以等效于for循环的第一个迭代)
'''
header=next(rea) #迭代器名写于next()函数的参数位置,这里返回内容将是.csv文件里的标题(列表形式),并且保存在了header变量中。
标题之后的具体数据保存于列表:
#现在的迭代器的指针已经位于第二行的开头了,所以for循环的遍历是从“具体数据”开始
for data in rea:
dataList.append(data) #for循环实现了将具体数据的每一行用list.append()方法添加进了dataList列表。
读之方法完毕。