“CSV”并不是一种单一的、定义明确的格式(尽管RFC 4180有一个被通常使用的定义)。因此在实践中,术语“CSV”泛指具有以下特征的任何文件:
1.纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
2.由记录组成(典型的是每行一条记录);
3.每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
4.每条记录都有同样的字段序列。
with open('st.csv', 'r', ) as fp:
red = csv.reader(fp)
next(red) #将第一行去掉
for x in red:
name = x[3] #将第三个字符的数据赋值给name
print({'name': name})
第二种读取放法
with open('st.csv', 'r', ) as fp:
red = csv.DictReader(fp)
for x in red:
value = {"name": x["index"]}
print(value)
csv的写入用法
headers = ['userName', 'age', 'hegiht'] #第一行信息
values = {
('张三', 17, 170),
('李四', 18, 180),
('王五', 19, 190)
}
with open('person.csv', 'w', encoding='utf-8') as fp:
person = csv.writer(fp) #
person.writerow(headers)#将第一行写入
person.writerows(values)#将所有写入
第二种写入方法
headers = ['userName', 'age', 'hegiht']
values = [
{"userName": "张三", "age": 17, "hegiht": 170},
{"userName": "李四", "age": 18, "hegiht": 180},
{"userName": "王五", "age": 18, "hegiht": 190}
]
with open('person.csv', 'w', encoding='utf-8', newline='') as fp:
person = csv.DictWriter(fp, headers)
#手动写入头信息
person.writeheader()
person.writerows(values)