第8课:CSV文件处理

169 阅读1分钟

1.读取CSV文件的两种方式

import csv

# 创建一个文件指针fp
with open('myCsv.csv', 'r', encoding='utf-8') as fp:

    # reader()方法
    reader = csv.reader(fp) #返回的是一个迭代器对象
    for x in reader:
        print(x)    # 打印全部的文件,每一行是列表的形式
        print(x[3]) # 打印的是每行的第四列元素

    # DictReader()方法
    reader = csv.DictReader(fp)
    for x in reader:
        print(x['name'])    # 打印出name列所有的值

2.CSV文件写入的两种方法

import csv

headers = ['name', 'age', 'height']

students = [
    ('zhangsan', 18, 180),
    ('lisi', 19, 178),
    ('wangwu', 20, 182),
    ('zhaoliu', 19, 183)
]


# 方法一:
# 1.创建一个文件指针
with open('student.csv', 'w', encoding='utf-8', newline='') as fp:
    # 2.创建一个csv.writer对象
    writer = csv.writer(fp)
    # 3.写入头部标题
    writer.writerow(headers)
    # 4.一次性写入多行数据
    writer.writerows(students)

students02 = [
    {"name":"zhangsan", "age":18, "height":180},
    {"name":"lisi", "age":18, "height":180},
    {"name":"wangwu", "age":18, "height":180},
    {"name":"zhaoliu", "age":18, "height":180}
]

# 方法二:
# 1.创建一个文件指针
with open('student.csv', 'w', encoding='utf-8', newline='') as fp:
    # 2.创建一个DictWriter对象
    dictWriter = csv.DictWriter(fp, headers)
    # 3.虽然上面传入了headers,但是在此处仍旧要重新写入
    dictWriter.writeheader()
    # 4.写入内容
    dictWriter.writerows(students02)