python 语法学习 day 12

一.填空题错题反思
1.
csv.reader(csvFile)
continue
golddata(或者golddata.keys())
golddata[item[0]]
writer.writerows

csv的读写:(打开文件,转换文件对象,利用对于对象的方法读写)
reader(列表)/DictReader(字典)
writer(列表)/DictWriter(字典)
--------------------------------------------------------------
reader:
    1.next:读取一行(返回列表),并将文件读取位置移动至下一行
    2.for:遍历数据(返回列表),由于使用了next,所以从第二行开始

import csv
with open('information.csv', encoding='utf-8') as fp:
    reader = csv.reader(fp)
    header = next(reader) # 获取标题
    print(header)
    for i in reader: # 遍历数据
        print(i)
#name,age
#suliang,21
#xiaoming,22
#xiaohu,25

#['name', 'age']
#['suliang', '21']
#['xiaoming', '22']
#['xiaohu', '25']
--------------------------------------------------------------
writer:
    1.writerow:写一行( [] ),writerow的参数为列表
    2.writerows:写多行([[], [], []]), wirterows的参数为嵌套列表

import csv
header = ['name', 'age', 'QQ_num', 'wechat']
data = [['zhangsan', '21', '78787878', 'zs78787878']]
with open('11.csv', 'w', encoding='utf-8', newline='') as fp:
    writer = csv.writer(fp) 
    writer.writerow(header) # writerow的参数为列表
    writer.writerows(data) # wirterows的参数为嵌套列表

#name,age,QQ_num,wechat
#zhangsan,21,78787878,zs78787878

--------------------------------------------------------------
DictReader:
    1.for:遍历数据,直接将标题和每一列数据组装成有序字典(OrderedDict)格式,无须再单独读取标题行。
#姓名,学号
import csv
with open('11.csv', encoding='utf-8') as fp:
    reader = csv.DictReader(fp)
    for i in reader: #i为每一行,为一个字典
        print(i)
#name,age,QQ_num,wechat
#zhangsan,21,78787878,zs78787878   

#{'name': 'zhangsan', 'age': '21', 'QQ_num': '78787878', 'wechat': 'zs78787878'}
--------------------------------------------------------------

DictWriter:
    1.对象转换注意
    2.writeheader()    
    3.writerows():参数为嵌套列表,外列表,内字典

import csv
header = ['name', 'age']
data = [{'name': 'suliang', 'age': '21'},
{'name': 'xiaoming', 'age': '22'},
{'name': 'xiaohu', 'age': '25'}]
with open('11.csv', 'w', encoding='utf-8', newline='') as fp:
    writer = csv.DictWriter(fp, header) # 写 header = ['name', 'age']
    writer.writeheader()  # 写入标题
    writer.writerows(data) # 将数据写入 data = [{'name': 'suliang', 'age': '21'},{'name': 'xiaoming', 'age': '22'},{'name': 'xiaohu', 'age': '25'}]

#name,age
#suliang,21
#xiaoming,22
#xiaohu,25
--------------------------------------------------------------
二.编程题错题反思
import sys
a = sys.stdin.read()
print(a)
#12回车:读取缓冲区
#
#34回车:读取缓冲区
#
#asd回车:读取缓冲区
#^D:ctrl+d结束输入(有些系统是ctrl+Z)

#12
#
#34
#
#asd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值