zoukankan      html  css  js  c++  java
  • csv文件读取与写入

    csv文件的读取:

    1)通过列表下标读取:

    import csv
    with open('stock.csv','r') as fp:
        # reader是个迭代器
        reader = csv.reader(fp)
        next(reader)
        for i in reader:
            # print(i)
            name = i[3]
            volumn = i[-1]
            print({'name':name,'volumn':volumn})
    

      直接用 open() 函数打开 csv 文件。使用csv.reader() 方法,其中参数为指针。因为该 csv 文件有表头,使用可以使用 next() 函数直接跳过第一组数据,即表头数据。然后直接通过列表下标获取想要的数据。

    2)通过key获取:

    import csv
    with open('stock.csv','r') as fp:
        reader = csv.DictReader(fp)
        for i in reader:
            value = {"name":i['secShortName'],"volumn":i['turnoverVol']}
            print(value)
    

       使用DictReader创建reader对象,不会包含表头那行的数据,而reader这个迭代器与reader创建的又不一样,遍历这个迭代器,返回来的是一个字典,不是列表。

    csv文件的写入:

    1)使用 writer 创建对象,writerow(s) 写入:

    import csv
    headers = ['username','age','height']
    value = [
        ('张三',18,180),
        ('李四',19,175),
        ('王五',20,170)
    ]
    with open("classroom.csv",'w',encoding='utf-8',newline='') as fp:
        writer = csv.writer(fp)
        writer.writerow(headers)
        writer.writerows(value)
    

      写入数据到 csv 文件,需要创建一个 writer 对象,才可以使用 writerow 写入一行,而 writerows 是全部写入。其中 默认下 newline=‘ ’ 即写入一行就会换行,所以需要改成空,数据都是存放在列表中。

    2)使用 DictWriter 创建对象,writerow(s) 写入:

    import csv
    headers = ['name','age','height']
    value = [
        {'name':'张三','age':18,'height':180},
        {'name':'李四','age':19,'height':175},
        {'name':'王五','age':20,'height':170}
    ]
    with open("classroom1.csv",'w',encoding='utf-8',newline='') as fp: #默认newline='
    '
        writer = csv.DictWriter(fp,headers)
        writer.writeheader()
        writer.writerows(value)
    

      当数据是存放在字典中可以使用 DictWriter 创建 writer 对象,其中,需要传两个参数,第一个是指针,第二个是表头信息。当使用 DictWriter 创建对象时,写入表头还需要执行 writeheader() 操作。

     

  • 相关阅读:
    剑指offer-第二章排序之年龄排序
    剑指offer—第二章算法之快速排序
    java小程序(课堂作业02)
    关于java的一些小知识(课程作业01)
    Java从命令行接受多个数字并求和
    《大道至简》第一章读后感及伪代码
    大道至简读后感
    GCPC 2013_A Boggle DFS+字典树 CSU 1457
    Aizu 2155 Magic Slayer 背包DP
    UVALive 4255 Guess
  • 原文地址:https://www.cnblogs.com/zyde-2893/p/11257211.html
Copyright © 2011-2022 走看看