Python----csv模块的用法

【原文链接】

csv写文件

  • csv.writer(f) 获取csv的write
  • writerow 写入一行数据
  • writerows 写入多行数据
  • 注意打开文件的时候将 newline设置为“”,否则写的csv会存在空行
import csv


def main():
    csv_file= "demo.csv"
    head=["name","age","sex"]
    data1=["zhangsan",20,"man"]
    data2=[
        ["lisi",22,"man"],
        ["wangmei",18,"woman"]
    ]
    with open(csv_file,"a+",encoding="utf-8",newline="") as f:
        csv_writer=csv.writer(f)
        csv_writer.writerow(head)
        csv_writer.writerow(data1)
        csv_writer.writerows(data2)


if __name__=="__main__":
    main()

csv读文件

import csv


def main():
    csv_file= "demo.csv"
    with open(csv_file,"r",encoding="utf-8",newline="") as f:
        ctx=csv.reader(f)
        for row in ctx:
            print(row)

if __name__=="__main__":
    main()

csv 写入数据为字典数据

  • 注意初始化DictWriter的是就需要指定fieldnames
import csv


def main():
    csv_file= "demo.csv"
    head=["name","age","sex"]
    data1={"name":"zhangsan","age":20,"sex":"man"}
    data2=[
        {"name":"lisi","age":22,"sex":"man"},
        {"name":"wangmei","age":18,"sex":"woman"}
    ]
    with open(csv_file,"a+",encoding="utf-8",newline="") as f:
        csv_writer=csv.DictWriter(f,fieldnames=head)
        csv_writer.writerow(data1)
        csv_writer.writerows(data2)


if __name__=="__main__":
    main()

csv读取数据为字典数据

  • 读取的时候初始化DictReader的时候不需要指定fieldnames,会自动将第一行作为fieldnames字段,然后读取出来
import csv


def main():
    csv_file= "demo.csv"
    with open(csv_file,"r",encoding="utf-8",newline="") as f:
        ctx=csv.DictReader(f)
        for elem in ctx:
            print(elem)

if __name__=="__main__":
    main()

你可能感兴趣的:(Python,csv)