"""
csv两种写入操作
csv就是字符分隔的纯文本,字段间的分隔符是其他字符或字符串
csv写入之后的文件可以直接Excel打开
"""
import csv


def write_csv_demo():
    headers = ["username", "age", "height"]
    values = {
        ("张三", 18, 180),
        ("李四", 19, 190),
        ("王五", 20, 160)
    }

    # 写入编码utf-8防止乱码,newline默认\n换行,防止换行让它等于空字符串
    with open("classroom.csv", "w", encoding="utf-8", newline="") as fp:
        # 调用csv库的writer()方法并传入fp文件句柄生成<class '_csv.writer'>实例对象
        writer = csv.writer(fp)
        # 调用实例对象的方法writerow()写入一行,默认逗号分隔。传入delimiter=" "可以修改列与列之间的分隔符
        writer.writerow(headers)
        # 写入多行是在writerow的基础之上添加map()方法传入一个函数和列表循环写入
        writer.writerows(values)


def write_csv_site():
    headers = ["username", "age", "height"]
    values = [
        {"username": "张三", "age": 18, "height": 180},
        {"username": "李四", "age": 19, "height": 190},
        {"username": "王五", "age": 20, "height": 160},
    ]
    with open("classroom1.csv", "w", encoding="utf-8", newline="") as fp:
        # DictWriter需要传入一个文件句柄和字典的key列表
        writer = csv.DictWriter(fp, headers)
        # 正式写入需要调用writeheader方法传入文件头
        writer.writeheader()
        # 写入多行文本
        writer.writerows(values)


if __name__ == '__main__':
    write_csv_demo()
    write_csv_site()
View Code

相关文章: