iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中CSV文件的读写库操作方法
  • 612
分享到

Python中CSV文件的读写库操作方法

CSV文件读写库CSV文件读写CSV文件 2022-12-08 20:12:17 612人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录文件的基本读写用字典模式处理数据非标准格式的处理dialectSnifferCSV 格式的全称是 Comma Separated Values,意思是逗号分割的数据,是最常见的电

CSV 格式的全称是 Comma Separated Values,意思是逗号分割的数据,是最常见的电子表格和数据库的导出格式之一,在 RFC 4180 中已经成为了一种标准格式。python 中提供了一个官方的标准库来处理这种文件类型,那就是 CSV 库。

官方文档在此:CSV

文件的基本读写

文件的读写主要使用 csv.reader 和 csv.writer 来完成,它的定义如下:

csv.reader(csvfile, dialect='excel', **fmtparams)
  • csvfile:返回字符串的迭代器,一般是 open 函数返回的文件对象
  • dialect:用来读取非标准 csv 格式的指定参数,这部分参考下文
  • **fmtparams:用来指定格式的参数,这部分的详细参数参考下文

最简单、最常用的使用方法是将 open 函数返回的文件对象直接丢给 csv.reader 就会得到一个每次返回一个拆分后的字符串列表的迭代器:

import csv
with open('file.csv', 'r') as input_file:
    file_content = csv.reader(input_file, delemiter=',')
    for row in file_content:
        # code here
        pass

类似地,对文件的写操作与原生方法类似:

import csv
with open('file.csv', 'w', newline='') as output_file:
    file_writer = csv.writer(output_file, delimiter=',')
    file_writer.writerow(['Spam'] * 5 + ['Baked Beans'])
    file_writer.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

用字典模式处理数据

有时候,我们可能需要将数据读取成字典(例如要上传到 mongoDB 的时候),这时候我们可以使用 csv.DictReader 将表格形式的数据读取为字典形式的数据

这个函数的参数如下:

csv.DictReader(
    f,
    fieldnames=None,
    resTKEy=None, restval=None,
    dialect='excel',
    *args, **kwds
)
  • f:可迭代对象或者文件对象
  • fieldnames:一个有序列表,代表字典中的字段(一般是文件的列名),如果不指定,就用文件的第一行的字符串来作为字段的名字
  • restkey:如果列名的数量少于内容的列数,那么剩下的列就会被统一放到一个字段里,这里的 restkey 就是这个字段的名字,默认为 None
  • restval:与 restkey 类似,如果内容的列数少于列名的数量,那么内容中缺少的列就会被填充,这个参数指定用来填充的值,默认为 None
  • 其他的参数与 csv.reader 相同

一个简单的示例如下:

import csv
with open('file.csv') as input_file:
    reader = csv.DictReader(input_file)
    for row in reader:
        print(row['first_name'], row['last_name'])

# Eric Idle
# John Cleese

print(row)
# {'first_name': 'John', 'last_name': 'Cleese'}

类似地,字典的写通过 csv.DictWriter 来完成,这个函数将字典类型的数据输出为表格形式的数据csv.DictWriter 的参数如下:

csv.DictWriter(
    f,
    fieldnames,
    restval='', extrasaction='raise',
    dialect='excel',
    *args, **kwds
)

与 csv.DictWriter 类似,fieldnames 指定所有的字段名称,restval 用来指定当指定字段有缺失值的时候用来填充的内容,extrasaction 参数用来指定内容缺少字段时的操作,默认会 'raise',即引发一个 ValueError 异常,可以设置为 'ignore',对应着忽略额外值,一个示例如下:

import csv

with open('names.csv', 'w', newline='') as output_file:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(output_file, fieldnames=fieldnames)
    # 将
    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

非标准格式的处理

有时候,csv 的文件可能不是标准的 csv 文件,无法直接读取,这时候我们需要指定一些额外参数来处理这些情况,这种情况下需要用到 dialect 功能,这个功能包含若干类和若干函数来帮助我们实现我们的目的。

dialect

默认情况下,三个 dialect 类型是内置的,分别是 'unix''excel'、和 'excel_tab''unix' 模式用来处理在 Unix 系统下生成的文件,而 'excel' 模式用来处理 excel 生成的 csv 文件,最后的 'excel_tab' 用来处理 excel 生成的制表符分割的文件,这三种预设已经覆盖了绝大多数的使用场景。

用户可以使用 Dialect 类来自定格式的处理:

csv.reGISter_dialect(
    'unixpwd',
    delimiter=',',
    quoting=csv.QUOTE_MINIMAL,
    quotechar='"',
    doublequote=True,
    escapechar=None,
    lineterminator='\r\n',
    skipinitialspace=False,
    strict=False
)
  • name:自定义的格式名称
  • delimiter:用来分割各字段的字符,默认为 ,
  • doublequote:没啥用,看不懂,待补充
  • escapechar:没啥用,一般不用
  • lineterminator:换行符,默认是 '\r\n'
  • quotechar:当字段含有特殊字符是,用来引用的符号,默认是 ",不用改,不常用
  • quoting:加引号的行为,可以选择 QUOTE_ALLQUOTE_MINIMALQUOTE_NONNUMERICQUOTE_NONE 四种行为
  • skipinitialspace:是否跳过分隔符后面的空格,默认为 False
  • strict:严格模式,如果为 True,文件格式不对的时候会报错终止,否则会强制读取

使用方法就是先使用csv.register_dialect注册一个自定义dialect,然后在reader里面指定它:

import csv
csv.register_dialect(
    'unixpwd',
    delimiter=':',
    quoting=csv.QUOTE_NONE,
    ...
)
with open('passwd', newline='') as f:
    reader = csv.reader(f, 'unixpwd')

Sniffer

正如它的名字,sniffer 提供了对格式的自动检测,并输出一个 dialect,提供了两个函数,分别是 has_header,用来检测文件是否包含标题行,和主函数 sniff,这里通过一个例子来学习它的使用:

with open('example.csv', newline='') as csvfile:
    # 通过文件的前1024行来确定文件的格式规范
    dialect = csv.Sniffer().sniff(csvfile.read(1024))
    # 将指针重置,从文件开始进行读取
    csvfile.seek(0)
    reader = csv.reader(csvfile, dialect)
    # ... process CSV file contents here ..

到此这篇关于Python中CSV文件的读写库的文章就介绍到这了,更多相关CSV文件的读写库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中CSV文件的读写库操作方法

本文链接: http://www.lsjlt.com/news/174244.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中CSV文件的读写库操作方法
    目录文件的基本读写用字典模式处理数据非标准格式的处理dialectSnifferCSV 格式的全称是 Comma Separated Values,意思是逗号分割的数据,是最常见的电...
    99+
    2022-12-08
    CSV文件读写库 CSV文件读写 CSV文件
  • Python读写csv文件的操作方法
    这篇文章主要介绍了Python读写csv文件的操作方法,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。要在 Python 中写入 CSV,请使用 Python 的 csv 模块。例如,让我们将一个字符串列表写入一个新的 C...
    99+
    2023-07-06
  • Pandas对CSV文件读写操作的方法
    这篇“Pandas对CSV文件读写操作的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Pandas对CSV文件读写操作的...
    99+
    2023-06-30
  • 详解Python读取和写入操作CSV文件的方法
    目录什么是 CSV 文件?内置 CSV 库解析 CSV 文件读取 CSV 文件csv将 CSV 文件读入字典csv可选的 Python CSV reader参数使用 csv 写入文件...
    99+
    2024-04-02
  • pythonpandas解析(读取、写入)CSV文件的操作方法
    目录1. 使用 pandas 读取 CSV 文件2. 使用 pandas 写入 CSV 文件1. 使用 pandas 读取 CSV 文件 原始数据包含了公司员工的数据: NameHi...
    99+
    2022-12-23
    python pandas 解析CSV 文件 pandas 读取 CSV 文件 pandas 写入 CSV 文件
  • Python怎么读取和写入操作CSV文件
    这篇文章主要介绍“Python怎么读取和写入操作CSV文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取和写入操作CSV文件”文章能帮助大家解决问题。什么是 CSV 文件?CSV...
    99+
    2023-06-29
  • Python读写CSV文件
    csv模块方法csv.readerimport csv    with open('temp.csv','rb') as f:         reader = csv.reader(f)         for row in reader...
    99+
    2023-01-31
    文件 Python CSV
  • Pandas对CSV文件读写操作详解
    目录什么是 CSV 文件CSV 库解析 CSV 文件读取 CSV 文件CSV reader 参数CSV 文件的写入使用 pandas 库解析 CSV 文件pandas 读取 CSV ...
    99+
    2024-04-02
  • Python 文件的读写操作
    文章目录 一、Python 文件读写概述二、使用 open() 打开文件三、使用 read()、readline()、readlines() 读取数据四、使用 write()、writelin...
    99+
    2023-09-29
    职场和发展 java python 后端 算法
  • 【Python】Python读写文件操作
    原帖地址:http://blog.csdn.net/adupt/article/details/44356151.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭...
    99+
    2023-01-31
    操作 文件 Python
  • Python数据读写之Python读写CSV文件
    目录1. 读取CSV文件 csv.reader()2. 写入CSV文件1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格...
    99+
    2024-04-02
  • python中csv文件读取与写入的方法是什么
    在Python中,我们可以使用`csv`模块来读取和写入CSV文件。下面是使用`csv`模块读取和写入CSV文件的方法:1. 读取CSV文件:```pythonimport csvwith open('file.csv', 'r') a...
    99+
    2023-08-11
    python
  • Python中Pandas文件操作和读取CSV参数的方法是什么
    这篇文章主要介绍“Python中Pandas文件操作和读取CSV参数的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中Pandas文件操作和读取CSV参数的方法是什么”文章能帮...
    99+
    2023-07-05
  • python 读写csv格式的文件
    python在它的标准库中包含了csv模块。 例子环境 python3.4 win7 32位 1.读取csv文件 csvTest-data.csv内容如下: ItemID,Name,Description,Owner,Bor...
    99+
    2023-01-31
    格式 文件 python
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2024-04-02
  • python读写csv文件的实战
    csv介绍csv是什么?大家估计都听过,不过我猜很少能有人比较全面的解释下的,那么小弟就献丑一下。csv我理解的是一个存储数据的文件,里面以逗号作为分割进行存储(当然也可以用制表符进行分割)。csv的规则1 开头是不留空,以行为单位。2 可...
    99+
    2023-01-31
    实战 文件 python
  • Python 之文件读写操作
    Python 读写文件    1、打开文件        使用 open 打开文件后,格式:open(filename,mode),最后一定要调用文件对象的 close() 方法,如图所示:                使用到的模式(mo...
    99+
    2023-01-31
    操作 文件 Python
  • Python 操作.csv文件
    import csv csvfile = file('E:\\workspace\\data\\ex1.csv', 'rb') reader = csv.reader(csvfile) for line in reader:     p...
    99+
    2023-01-31
    操作 文件 Python
  • Python——csv文件的写入与读取
    1.csv文件介绍 CSV文件是一种常见的数据格式,它以逗号分隔不同的字段,每行表示一个数据记录。在Python中,我们可以使用csv模块来读取和写入CSV文件。 2.写入CSV文件 在Python中,我们可以使用csv模块的writer对...
    99+
    2023-09-04
    python 开发语言
  • python操作csv格式文件之csv.DictReader()方法
    目录简单使用csv.DictReader()方法使用csv.DictReader()之fieldnames参数使用csv.DictReader()之restkey参数使用csv.Di...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作