百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

python 内置模块csv 处理 CSV文件

toyiye 2024-06-21 11:54 12 浏览 0 评论

一、介绍

csv 模块是 Python 标准库中用于处理 CSV(逗号分隔值)文件的模块。CSV 文件是一种常见的文本文件格式,用于存储表格数据,Python 的内置模块,无需额外安装

二、基本使用

import csv

with open('test.csv','w',newline='') as csv_file:
     writer= csv.writer(csv_file)
     writer.writerow(['id', 'name', 'age'])
     writer.writerow(['10001', 'Mike', 20])
     writer.writerow(['10002', 'Bob', 22])
     writer.writerow(['10003', 'Jordan', 21])

三、方法和属性

  1. csv.reader(csvfile, dialect='excel', **fmtparams):创建一个 reader 对象,用于从 CSV 文件中逐行读取数据
  • csvfile:要写入的文件对象。可以是文件对象(例如通过open()函数打开的文件)或者支持写入操作的类似文件的对象。
  • dialect:可选参数,指定使用的CSV方言。默认为'excel'方言。您可以使用预定义的方言(如'excel'、'excel-tab'等),也可以使用自定义的方言。
  • **fmtparams:可选参数,用于指定额外的格式化参数。这些参数可以覆盖方言的默认设置。常用的格式化参数包括:
    • delimiter:字段分隔符的字符,默认为逗号(,)
    • quotechar:引号字符,默认为双引号(")
    • quoting:引用风格的设置,默认为QUOTE_MINIMAL,可选值有QUOTE_ALL、QUOTE_MINIMAL、QUOTE_NONNUMERIC和QUOTE_NONE
    • escapechar:转义字符,默认为无
    • doublequote:是否将引号字符双写,默认为True
    • lineterminator:行终止符的字符,默认为系统的默认行终止符
    • skipinitialspace:是否跳过字段前的空格,默认为False
    • strict:指定是否启用严格的CSV格式验证。默认为False,表示允许非标准的CSV格式
import csv

with open('test.csv','r',newline='') as csv_file:
     reader = csv.reader(csv_file)
     for item in reader:
          print(item)
  1. csv.DictReader(csvfile, dialect='excel', **fmtparams):用于从CSV文件中读取数据,并将每一行数据转换为字典形式
  • csvfile:要写入的文件对象。可以是文件对象(例如通过open()函数打开的文件)或者支持写入操作的类似文件的对象。
  • dialect:可选参数,指定使用的CSV方言。默认为'excel'方言。您可以使用预定义的方言(如'excel'、'excel-tab'等),也可以使用自定义的方言。
  • **fmtparams:可选参数,用于指定额外的格式化参数。这些参数可以覆盖方言的默认设置。常用的格式化参数包括:
    • delimiter:字段分隔符的字符,默认为逗号(,)
    • quotechar:引号字符,默认为双引号(")
    • quoting:引用风格的设置,默认为QUOTE_MINIMAL,可选值有QUOTE_ALL、QUOTE_MINIMAL、QUOTE_NONNUMERIC和QUOTE_NONE
    • escapechar:转义字符,默认为无
    • doublequote:是否将引号字符双写,默认为True
    • lineterminator:行终止符的字符,默认为系统的默认行终止符
    • skipinitialspace:是否跳过字段前的空格,默认为False
    • strict:指定是否启用严格的CSV格式验证。默认为False,表示允许非标准的CSV格式
  1. csv.writer(csvfile, dialect='excel', **fmtparams):创建一个 writer 对象,用于将数据逐行写入 CSV 文件
  • csvfile:要写入的文件对象。可以是文件对象(例如通过open()函数打开的文件)或者支持写入操作的类似文件的对象。
  • dialect:可选参数,指定使用的CSV方言。默认为'excel'方言。您可以使用预定义的方言(如'excel'、'excel-tab'等),也可以使用自定义的方言。
  • **fmtparams:可选参数,用于指定额外的格式化参数。这些参数可以覆盖方言的默认设置。常用的格式化参数包括:
    • delimiter:字段分隔符的字符,默认为逗号(,)
    • quotechar:引号字符,默认为双引号(")
    • quoting:引用风格的设置,默认为QUOTE_MINIMAL,可选值有QUOTE_ALL、QUOTE_MINIMAL、QUOTE_NONNUMERIC和QUOTE_NONE
    • escapechar:转义字符,默认为无
    • doublequote:是否将引号字符双写,默认为True
    • lineterminator:行终止符的字符,默认为系统的默认行终止符
    • skipinitialspace:是否跳过字段前的空格,默认为False
    • strict:指定是否启用严格的CSV格式验证。默认为False,表示允许非标准的CSV格式
  1. csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', **fmtparams) 将字典数据写入CSV文件,返回DictWriter对象
  • csvfile:要写入的文件对象。可以是文件对象(例如通过open()函数打开的文件)或者支持写入操作的类似文件的对象
  • fieldnames:一个字符串列表,指定CSV文件的列名。列表中的每个字符串对应一个列名。列名的顺序将决定CSV文件中列的顺序
  • restval:可选参数,指定当字典中缺少某个键时,该键对应的默认值。默认为空字符串
  • extrasaction:可选参数,指定当字典中存在额外的键时的处理方式。默认为'raise',表示引发ValueError异常。还可以设置为'ignore',表示忽略额外的键
  • dialect:可选参数,指定使用的CSV方言。默认为'excel'方言。可以使用标准的方言名称(如'excel'、'excel-tab'、'unix'等),也可以创建自定义方言对象
  • **fmtparams:可选参数,用于指定额外的格式化参数。这些参数可以覆盖方言的默认设置。常用的格式化参数包括:
    • delimiter:字段分隔符的字符,默认为逗号(,)
    • quotechar:引号字符,默认为双引号(")
    • quoting:引用风格的设置,默认为QUOTE_MINIMAL,可选值有QUOTE_ALL、QUOTE_MINIMAL、QUOTE_NONNUMERIC和QUOTE_NONE
    • escapechar:转义字符,默认为无
    • doublequote:是否将引号字符双写,默认为True
    • lineterminator:行终止符的字符,默认为系统的默认行终止符
    • skipinitialspace:是否跳过字段前的空格,默认为False
    • strict:指定是否启用严格的CSV格式验证。默认为False,表示允许非标准的CSV格式
  1. csv.register_dialect(name, dialect=None, **fmtparams):注册一个新的 CSV 方言,或者更新现有方言的参数
  2. csv.unregister_dialect(name):取消注册指定名称的 CSV 方言
  3. csv.get_dialect(name):返回指定名称的 CSV 方言对象
  4. csv.list_dialects():返回所有已注册的 CSV 方言的名称列表
  5. csv.field_size_limit([new_limit]):获取或设置解析 CSV 文件时字段大小的限制
  6. csv.QUOTE_ALL:引用所有字段的常量,用于写入 CSV 文件时将所有字段都放在引号中
  7. csv.QUOTE_MINIMAL:最小引用常量,用于写入 CSV 文件时只在必要时才引用字段
  8. csv.QUOTE_NONNUMERIC:非数字引用常量,用于写入 CSV 文件时将非数字字段放在引号中
  9. csv.QUOTE_NONE:不引用常量,用于写入 CSV 文件时不引用任何字段
  10. csv.Error:CSV 模块中的异常基类
  11. csv.fieldnames:CSV 文件的字段名称列表
  12. csv.reader.line_num:当前读取的行号
  13. csv.Dialect.delimiter:字段分隔符的字符
  14. csv.Dialect.quotechar:引号字符
  15. csv.Dialect.escapechar:转义字符
  16. csv.Dialect.doublequote:是否将引号字符双写
  17. csv.Dialect.skipinitialspace:是否跳过字段前的空格
  18. csv.Dialect.lineterminator:行终止符的字符
  19. csv.Dialect.quoting:引用风格的设置
  20. csv.Dialect.ignore:忽略的字符
  21. csv.Dialect.strict:是否启用严格模式

四、 writer 对象

  1. writer.dialect:返回当前使用的CSV方言对象
  2. writerwriterow(row):将一行数据写入CSV文件。row是一个可迭代对象,表示一行的数据
  3. writer.writerows(rows):将多行数据写入CSV文件。rows是一个可迭代的对象,每个元素表示一行的数据
import csv

with open('test.csv','w',newline='') as csv_file:
     writer= csv.writer(csv_file)
     writer.writerow(['id', 'name', 'age'])
     writer.writerow(['10001', 'Mike', 20])
     writer.writerows([['10002', 'Bob', 22],['10003', 'Jordan', 21]])

五、 DictWriter 对象

  1. dictWriter.writeheader():写入CSV文件的列名行。该方法将使用fieldnames属性指定的列名,并将其作为CSV文件的第一行
  2. dictWriter.writerow(rowdict):写入一行数据到CSV文件。rowdict是一个字典,其中键是列名,值是对应的数据。该方法将根据fieldnames属性的顺序将数据写入CSV文件的相应列
  3. dictWriter.writerows(rowdicts):写入多行数据到CSV文件。rowdicts是一个字典列表,其中每个字典表示一行数据。与writerow()方法类似,该方法将根据fieldnames属性的顺序将数据写入CSV文件的相应列
import csv

with open('test.csv','w',newline='') as csv_file:
     fieldnames = ['id', 'name', 'age']
     dict_writer= csv.DictWriter(csv_file,fieldnames=fieldnames)
     dict_writer.writeheader()
     dict_writer.writerow({'id':'10001','name':'Mike','age':20})
     dict_writer.writerows([{'id':'10002','name':'Bob','age':22},{'id':'10003','name':'Jordan','age':22}])

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码