```#一。读取csv文件
import csv
#1.通过下标来获取一列的内容
'''
with open('stock.csv','r',encoding='gbk') as fp:
readers=csv.reader(fp) #csv.reader() 返回的是一个迭代器 可用循环得出内容
for reader in readers:
print(reader) #得到的内容是一个列表 可以通过 reader[] 加下标 来获取这一列的内容'''
#2.通过列的名字获取内容
'''
with open('stock.csv','r',encoding='gbk') as fp:
readers=csv.DictReader(fp) #采用不同的函数 csv.DictReader()
for reader in readers:
print(reader['secShortName'])'''
#二。写入csv文件
#1.
headers = ('name','age','height') #设置表头 即第一行的内容
students = [
("张三",18,180),
("李四",19,190),
("王五",20,170)] #这要和表头信息对应
#如果我改为这样 [{ }] 的话写入的内容就会把 "张三",18,180 看成一个内容写在第一个头下面
with open('students.csv','w',encoding='utf-8',newline='') as fp: #newline 作用是改变 换行符 不改变,一般默认的是 /n
writer=csv.writer(fp)
writer.writerow(headers) #只能写一行
writer.writerows(students) #可以写入多行
#2. 以字典形式写入
students = [
{"name":"张三","age":18,"height":180},
{"name":"李四","age":19,"height":190},
{"name":"王五","age":20,"height":170}
]
with open("students.csv",'w',encoding='utf-8',newline='') as fp:
writer = csv.DictWriter(fp,headers)
# 虽然DictWriter创建的时候有一个headers,但是想要写入数据进去,还是需要调用
# writer.writeheader()方法,否则,表头数据写入不进去
writer.writeheader()
writer.writerows(students)