• 数据读写:Python读写CSV文件


    1. 读取CSV文件

    csv.reader()

    该方法的作用相当于就是通过 ',' 分割csv格式的数据,并将分割好的每行数据存入列表中,并且还去除了每行最后分割产生的数据尾部的空格、换行符、制表符等等。

    import csv
    with open('data.csv',mode='r',encoding='utf-8-sig',newline='') as File:
        # 使用csv.reader()将文件中的每行数据读入到一个列表中
        reader = csv.reader(File, delimiter=',', quotechar=',', quoting=csv.QUOTE_MINIMAL)
        # 遍历列表将数据按行输出
        for row in reader:
            print(row)            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    直接通过 索引 来访问每行数据的列元素

    for row in reader:
        print(row[0])
    
    • 1
    • 2

    在这里插入图片描述

    csv.DictReader()

    该方法将文件中的每行数据保存在 OrderedDict 中,此数据类型类似于嵌套着元组的列表,每个元组中的第一个元素为键,第二个元素为值,其中元组中的键来自于CSV数据中的表头信息。

    import csv
    results = []
    with open('data.csv',mode='r',encoding='utf-8-sig',newline='') as File:
        reader = csv.DictReader(File)
        for row in reader:
            print(row)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    通过键值来读取部分信息

        for row in reader:
            print(row['MakeSpan'],row['WaitTime'])
    
    • 1
    • 2

    在这里插入图片描述

    关于DictReader()的更多内容尚未学习整理,如有需要可参考其他文章:CSV.DictReader()方法

    2. 写入CSV文件

    1. 首先需要导入读写csv需要用的包:
    import csv
    
    • 1
    1. 使用open()函数打开一个文件,open()函数常用的参数:

      file:文件路径、文件名

      mode:打开模式,r(只读),w(只写),a(追加模式)

      newline:每行之间是否存在空行,默认存在空行,' ':没有空行。

    myFile = open('example2.csv', 'w', newline='')
    
    • 1
    1. csv.writer模块,用于将数据写入CSV:

      csvfile:这 能够 是带有write()方法的任何对象。
      dialect=‘excel’:一个可选参数,用于定义特定于特定CSV的一组参数。
      fmtparam:可选参数,可用于覆盖现有的格式设置参数。

    writer = csv.writer(myFile)
    
    • 1
    1. 使用writerow()和writerows()将数据写入到CSV文件中:

      writerow():将数据存到csv文件中的一行里,每个元素占用一个单元格

      writerows():将数据中的每一个列表存到CSV文件中的一行里,列表中每个元素占用一个单元格

    myData1 = [["这", "是", "writerow", "的", "效", "果"],
               ["这", "是", "writerow", "的", "效", "果"],
               ["这", "是", "writerow", "的", "效", "果"]]
               
    myData2 = [["这", "是", "writerows", "的", "效", "果"],
               ["这", "是", "writerows", "的", "效", "果"],
               ["这", "是", "writerows", "的", "效", "果"]]
    
    myFile = open('example2.csv', 'w', newline='')
    with myFile:
        writer = csv.writer(myFile)
        
        writer.writerow(myData1) 
        writer.writerows(myData2) 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    写入文件后的效果如下所示:
    在这里插入图片描述

  • 相关阅读:
    竞赛选题 疲劳驾驶检测系统 python
    git diff 生成patch合入代码
    LCD电子手提秤电路板方案软硬件开发
    代码以功能为单位
    记录一次并发情况下的redis导致服务假死的问题
    Elasticsearch深入理解(六) —— 如何处理并发冲突
    【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)
    速看!湖北省首例落地专利开放许可有关内容解读
    Web攻防06_sqlmap的使用
    Java设计模式--代理模式
  • 原文地址:https://blog.csdn.net/qq_33021529/article/details/125467793