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 等。

python csv模块安装_Python中CSV模块相关推荐

  1. python中importlib模块安装_Python中标准模块importlib详解

    Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外 ...

  2. python csv读写方法_python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方 ...

  3. python处理回显_Python中getpass模块无回显输入源码解析

    本文主要讨论了python中getpass模块的相关内容,具体如下. getpass模块 昨天跟学弟吹牛b安利Python标准库官方文档的时候偶然发现了这个模块.仔细一看内容挺少的,只有两个主要api ...

  4. python导入模块快捷键_Python中的模块导入和读取键盘输入的方法

    导入模块 import 语句 想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: ? 当解释器遇到import语句,如果模块在当前的搜索路径就会被导入. 搜索路径是一个解释 ...

  5. python3模块socket怎么安装_Python中socket模块的使用方法(一)

    socket(中文名称:套接字)是应用层与传输层(TCP/UDP协议)的接口.是对TCP/IP的封装.是操作系统的通信机制.应用程序通过socket进行网络数据的传输.Python中的socket是我 ...

  6. python url模块介绍_python 中 urlparse 模块介绍

    urlparse模块主要是用于解析url中的参数  对url按照一定格式进行 拆分或拼接 1.urlparse.urlparse 将url分为6个部分,返回一个包含6个字符串项目的元组:协议.位置.路 ...

  7. python的requests模块功能_python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  8. python中random模块用法_Python中random模块用法实例分析

    本文实例讲述了Python中random模块用法.分享给大家供大家参考.具体如下: import random x = random.randint(1,4); y = random.choice([ ...

  9. python模块讲解_python中常用模块详解一

    1.time 模块 import time s = time.localtime() # 把时间转化成格式化的时间,通过. 取得里面的年月日等 struct_time 格式 time.struct_t ...

  10. python openpyxl模块安装_python之openpyxl模块

    一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库 ...

最新文章

  1. 【Android】adb命令总结
  2. python程序员工作怎样-python程序员待遇如何
  3. 2017 ZSTU寒假排位赛 #8
  4. Linux 中的动态链接库和静态链接库是干什么的?
  5. 序列化反序列化api(入门级)
  6. 警惕由于使用YYYY-MM-dd引发的一场生产问题
  7. tfrecord数据报错 InvalidArgumentError: Feature: feature (data type: string) is required but could not
  8. scala的foreach和for
  9. python local_Python3中 对local和nonlocal 关键字的改善认识(新手向)
  10. 从零开始学JavaWeb
  11. ::在c++中什么意思
  12. Tomcat 7 Connector 精读(2) 协议处理器 Http11Protocol(待续)
  13. 研究生课程笔记:软件包在流行病学中的应用(一)——PASS软件
  14. windows 7 安装 db2 v11.1 下载 安装教程
  15. mmdetection源码笔记(二):创建网络模型之registry.py和builder.py解读(上)
  16. PHP站群系统小旋风万能蜘蛛池x6.3源码 pojie不限授权
  17. 群主微信sdk说明地址
  18. 计算机桌面为什么没有语言栏了,语言栏不见了怎么办 电脑语言栏为何不见了【详解】...
  19. 快来和网红 ChatGPT 聊天!!
  20. 网页设置MP4背景,解决html音乐无法自动播放

热门文章

  1. chrome主页和新标签页被金山毒霸劫持 处理方法
  2. 人脸识别实践(1) - 基本原理与设计思路
  3. java通过txt读取迷宫地图_java寻找迷宫路径的简单实现示例
  4. 真探第一季/全集True Detective1迅雷下载
  5. JavaScript:实现NQueen皇后问题算法(附完整源码)
  6. 二维码设备巡检解决方案
  7. 等级保护综述—等保知多少?
  8. Markdown编辑器使用-yellowcong
  9. irr内部收益率php,内部收益率(IRR)
  10. Hexo写博客时的图片问题