Python CSV 文件解析和生成方法示例

 更新时间:2022年07月15日 08:45:13   作者:常伟佳  
这篇文章主要为大家介绍了Python CSV 文件的解析和生成方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

思路

  • 简单的生成和读取 CSV
  • CSV 文件格式
  • 使用 csv 库

Python with CSV

先有个很朴素的生成和解析的方法。

生成:

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]
for cow in data:
    print(','.join(map(str, cow)))

生成结果:

1,2,3
4,5,6
7,8,9

解析

s = """1,2,3
4,5,6
7,8,9
"""
cows = s.splitlines()
data = []
for cow in cows:
    items = cow.split(',')
    data.append(items)
# data
# [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

但是显示的数据可能不这么理想,比如其中的某一项有 , 的时候就会有问题了。

CSV 格式

CSV 中有几个概念需要先了解下。CSV 虽然是 Comma-separated values 但并不一定用逗号来分隔,也可以用其他的来分隔。同时 CSV 也没有一个明确的规范。

从 Python 的 csv 的文档中看到的一些关键术语:

delimiter,最基本的分隔符

quotechar,如果某个 item 中包含了分隔符,应该用 quotechar 把它包裹起来

doublequote,如果某个 item 中出现了 quotechar 那么可以把整个内容用 quotechar 包裹,并把 quotechar double 一下用来做区分

escapechar,如果不用 doublequote 的方法还可以用 escapechar 来辅助

lineterminator,每一行的结束符,默认的是 \r\n

quoting,可以选择任何时候都使用 quotechar 来包裹内容,或者是需要用到的时候再用,或者不用

skipinitialspace,是否忽略分隔符后面跟着的空格

strict,这个是 Python 自己的,是否抛要异常

(上面的可能没有覆盖所有的细节,但大概就是这样的情况)

使用 Python 的 csv 库

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

很简单的例子就是

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
import csv
with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

另外这里面有个 dialect 的概念,就是用一个 dialect 来定义上面提到的那些解析规则。

可以自己注册(csv.register_dialect )、列出所有的(csv.list_dialects)、获取某个(csv.get_dialect)。

默认是用逗号分隔的 excel 的 dialect,所以如果没有特殊情况应该直接使用默认值就够了。

其他

这次先只把基本概念了解下,后面可能还有文件编码之类的坑,到时遇到了再回来更新。

参考

PEP 305 -- CSV File API | Python.org

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

以上就是Python CSV 文件解析和生成方法示例的详细内容,更多关于Python CSV文件解析生成的资料请关注脚本之家其它相关文章!

相关文章

  • python pyinstaller 加载ui路径方法

    python pyinstaller 加载ui路径方法

    今天小编就为大家分享一篇python pyinstaller 加载ui路径方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python实现超快窗口截图功能详解

    Python实现超快窗口截图功能详解

    这篇文章主要为大家详细介绍了如何利用Python语言实现超快窗口截图功能,可以自动获取当前活动窗口并展示截图,感兴趣的可以了解一下
    2022-05-05
  • python安装numpy&安装matplotlib& scipy的教程

    python安装numpy&安装matplotlib& scipy的教程

    下面小编就为大家带来一篇python安装numpy&安装matplotlib& scipy的教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Anaconda安装以及修改环境默认位置图文教程

    Anaconda安装以及修改环境默认位置图文教程

    Anaconda是一个用于科学计算的Python发行版,支持Linux,Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包,下面这篇文章主要给大家介绍了关于Anaconda安装以及修改环境默认位置的相关资料,需要的朋友可以参考下
    2023-04-04
  • python实现跨进程(跨py文件)通信示例

    python实现跨进程(跨py文件)通信示例

    本文主要介绍了python实现跨进程(跨py文件)通信示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Python结合OpenCV和Pyzbar实现实时摄像头识别二维码

    Python结合OpenCV和Pyzbar实现实时摄像头识别二维码

    这篇文章主要为大家详细介绍了如何使用Python编程语言结合OpenCV和Pyzbar库来实时摄像头识别二维码,文中的示例代码讲解详细,需要的可以参考下
    2024-01-01
  • pandas常用表连接merge/concat/join/append详解

    pandas常用表连接merge/concat/join/append详解

    使用python的pandas库可以很容易帮你搞定,而且性能也是很出色的;百万级的表关联,可以秒出,本文给大家分享pandas常用表连接merge/concat/join/append详解,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • PyTorch上实现卷积神经网络CNN的方法

    PyTorch上实现卷积神经网络CNN的方法

    本篇文章主要介绍了PyTorch上实现卷积神经网络CNN的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Python标准库shutil模块使用方法解析

    Python标准库shutil模块使用方法解析

    这篇文章主要介绍了Python标准库shutil模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python连接MySQL数据库并查找表信息

    Python连接MySQL数据库并查找表信息

    本文主要介绍了Python连接MySQL数据库并查找表信息,通过使用Python中的MySQL Connector模块,连接到MySQL服务器并执行SQL查询语句,可以获取表的结构、列信息、行数据等,感兴趣的可以了解一下
    2023-08-08

最新评论