1 #!/usr/bin/python
2 # -*- coding:utf-8 -*-
3
4 #1.当做普通文件直接读取
5 with open("123.csv","r",encoding="utf-8") as f:
6 print(f.read()) #读取所有
7 f.seek(0) #光标移动到最开始位置
8 print(f.readline()) #读取一行
9 print(f.readline(15)) #读取一行的前N个字符
10 print(f.readlines()) #以列表形式读取每一行
11
12 #2.转换为csv对象读取
13 import csv
14 with open("123.csv","r",encoding="utf-8") as f:
15 reader = csv.reader(f)
16 for line in reader: #一行一行的读取,每一行都以列表形式存储
17 print(line)
18
19 #3.转换为字典对象,按键值读取某一列
20 import csv
21 with open("123.csv","r",encoding="utf-8") as f:
22 reader = csv.DictReader(f)
23 for line in reader:
24 print(dict(line),dict(line)["主观评分"])
25
26
27 #4.写入数据为一个header和一组values
28 import csv
29
30 header = ['name','age']
31 value1 = ['Tom',20]
32 value2 = ['张三',15]
33 value3 = [['李四',18],['王五','']]
34
35 with open('234.csv','a',newline='',encoding='utf-8-sig') as f:
36 writer = csv.writer(f)
37 writer.writerow(header) #一次写入一行
38 writer.writerow(value1)
39 writer.writerow(value2)
40 writer.writerows(value3) #一次写入多行
41
42 #5.写入数据为字典
43 import csv
44
45 values = [{'name': 'jack', 'age': '15'},{'name': 'tom', 'age': '16'}]
46 header = list(values[0].keys()) #从字典数据中获取头部信息
47 with open("456.csv","a+",newline='',encoding="utf-8-sig") as f:
48 writer = csv.DictWriter(f,header) #传2个参数,第一个参数为打开的.csv文件句柄,第二个参数为要写的表头
49 writer.writeheader() #写入表头的专用方法,这里也可以使用writer.writerow(header)
50 writer.writerows(values)