资讯专栏INFORMATION COLUMN

Python CSV模块简介

不知名网友 / 1352人阅读

摘要:文件格式是一种通用的电子表格和数据库导入导出格式。这意味着读的时候都认为内容是不被默认引用符包围的。所以非字符串类型的数据会被成字符串存储。使用示例读写其它模块还涉及了其它的概念,比如还提供了供错误处理的等,因为实际使用较少及就不累赘在此。

CSV

csv文件格式是一种通用的电子表格和数据库导入导出格式。最近我调用RPC处理服务器数据时,经常需要将数据做个存档便使用了这一方便的格式。

简介

Python csv模块封装了常用的功能,使用的简单例子如下:

# 读取csv文件
import csv
with open("some.csv", "rb") as f:        # 采用b的方式处理可以省去很多问题
    reader = csv.reader(f)
    for row in reader:
        # do something with row, such as row[0],row[1]


import csv
with open("some.csv", "wb") as f:      # 采用b的方式处理可以省去很多问题
    writer = csv.writer(f)
    writer.writerows(someiterable)

默认的情况下, 读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符, 例如:

import csv
with open("passwd", "rb") as f:
    reader = csv.reader(f, delimiter=":", quoting=csv.QUOTE_NONE)
    for row in reader:
        print row

上述示例指定冒号作为分隔符,并且指定quote方式为不引用。这意味着读的时候都认为内容是不被默认引用符(")包围的。quoting的可选项为: QUOTE_ALL, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_NONE.

有点需要注意的是,当用writer写数据时, None 会被写成空字符串,浮点类型会被调用 repr() 方法转化成字符串。所以非字符串类型的数据会被 str() 成字符串存储。所以当涉及到unicode字符串时,可以自己手动编码后存储或者使用csv提供的 UnicodeWriter, 具体可参见这里。

字典方式地读写

csv还提供了一种类似于字典方式的读写,方式如下:

格式如下:

class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect="excel", *args, **kwds)

class csv.DictWriter(csvfile, fieldnames, restval="", extrasaction="raise", dialect="excel", *args, **kwds)

其中fieldnames指定字典的key值,如果reader里没有指定那么默认第一行的元素,在writer里一定要指定这个。

使用示例

# 读
>>> import csv
>>> with open("names.csv") as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         print(row["first_name"], row["last_name"])
...
Baked Beans
Lovely Spam
Wonderful Spam


# 写

import csv
with open("names.csv", "w") as csvfile:
    fieldnames = ["first_name", "last_name"]
    writer = csv.DictWriter(csvfile, 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模块还涉及了其它的概念,比如 Dialects, 还提供了供错误处理的 exception csv.Error 等,因为实际使用较少及就不累赘在此。更多参考官方文档。

参考资料

https://docs.python.org/2/lib...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38254.html

相关文章

  • Python Library】csvCSV File Reading and Writing

    摘要:一概述逗号分隔符文件是表格与数据库操作之中最常用的输入输出格式。但是尽管不同规范的之中,分隔符和引用符千差万别,他们的格式还是大体相似的,因此制作一个可以高效处理文件中的数据同时还能将读写的细节隐去的模块并不是什么难事儿。 一、概述 CSV(逗号分隔符)文件是表格与数据库操作之中最常用的输入输出格式。在RFC4180中的文件描述标准对CSV格式进行规范之前,CSV格式文件就已经被应用了...

    zhigoo 评论0 收藏0
  • 另类爬虫:从PDF文件中爬取表格数据

    摘要:本文将展示如何利用的模块从文件中爬取表格数据。但如何从文件中提取其中的表格,这却是一个大难题。我们以输出文件为例从文件中提取表格将表格数据转化为文件得到的文件如下例在例中,我们将提取页面中的某一区域的表格的数据。 简介   本文将展示一个稍微不一样点的爬虫。  以往我们的爬虫都是从网络上爬取数据,因为网页一般用HTML,CSS,JavaScript代码写成,因此,有大量成熟的技术来爬取...

    Anchorer 评论0 收藏0
  • 自制简单的诗歌搜索系统

    摘要:项目简介本文将介绍一个笔者自己的项目自制简单的诗歌搜索系统。该项目使用的模块为其中,模块和模块用来制作爬虫,爬取网上的诗歌。 项目简介   本文将介绍一个笔者自己的项目:自制简单的诗歌搜索系统。该系统主要的实现功能如下:指定一个关键词,检索出包含这个关键词的诗歌,比如关键词为白云,则检索出的诗歌可以为王维的《送别》,内容为下马饮君酒,问君何所之?君言不得意,归卧南山陲。但去莫复问,白云...

    SegmentFault 评论0 收藏0
  • Python爬虫入门教程 4-100 美空网未登录图片爬取

    摘要:爬虫分析首先,我们已经爬取到了多的用户个人主页,我通过链接拼接获取到了在这个页面中,咱们要找几个核心的关键点,发现平面拍摄点击进入的是图片列表页面。 简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可以了,或者带带我也行。 爬虫分析 首先,我们已经爬取到了N多的...

    netmou 评论0 收藏0

发表评论

0条评论

不知名网友

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<