文档章节

python csv学习

chuang_py
 chuang_py
发布于 2015/06/15 20:01
字数 1464
阅读 590
收藏 3
点赞 0
评论 0

13.1. csvCSV File Reading and Writing

       The so-called CSV (Comma Separated Values) format is the most common import and export format for spreadsheets and databases.  There is no “CSV standard”, so the format is operationally defined by the many applications which read and write it.  The lack of a standard means that subtle differences often exist in the data produced and consumed by different applications.  These differences can make it annoying to process CSV files from multiple sources.  Still, while the delimiters and quoting characters vary, the overall format is similar enough that it is possible to write a single module which can efficiently manipulate such data, hiding the details of reading and writing the data from the programmer.

        所谓CSV(逗号分隔值)格式是电子表格和数据库中最常见的导入和导出格式。这里没有“CSV 标准”,所以格式是由许多读写它的应用操作上定义。这标准上的缺乏意味着细微的差别往往存在于不同的应用程序生产和消费数据。这些差异可以使多个来源的处理CSV文件变得困难。同时,分隔符和引用字符的变化,整体格式如此相似以至于程序员可以写一个单独的模块,此模块可以有效操纵这样的数据,并且封装读写数据的细节。

       The csv module implements classes to read and write tabular data in CSVformat.  It allows programmers to say, “write this data in the format preferred by Excel,” or “read data from this file which was generated by Excel,” without knowing the precise details of the CSV format used by Excel.  Programmers can also describe the CSV formats understood by other applications or define their own special-purpose CSV formats.

        csv模块实现类读写CSV格式的表格数据。它允许程序员如此说:“Excel优选这种格式写入数据“,或”从Excel等文件读数据,”不知道Excel所用的CSV格式的精确细节,程序员也可以以其他应用程序理解来描述csv格式,或者定义自己专用的csv格式。

       The csv module’s reader and writer objects read and write sequences.  Programmers can also read and write data in dictionary form using the DictReader and DictWriter classes.

        csv模块的读写器对象可以读取和写入序列。程序员也可以使用DictReader和DictWriter类读取和写入字典形式的数据。

       Note:This version of the csv module doesn’t support Unicode input.  Also, there are currently some issues regarding ASCII NUL characters.  Accordingly, all input should be UTF-8 or printable ASCII to be safe; see the examples in section Examples.

        注意:这个版本(2.7)的csv模块不支持Unicode输入。此外,目前有一些有关于ASCII空字符的问题。因此,所有的输入都应该是UTF-8或者打印安全的ASCII;这些可以在Example部分看实例。

        13.1.1. Module Contents

        The csv module defines the following functions:

  • csv.reader(csvfile, dialect='excel', **fmtparams)

  • Return a reader object which will iterate over lines in the given csvfile.csvfile can be any object which supports the iterator protocol and returns a string each time its next() method is called — file objects and list objects are both suitable.   If csvfile is a file object, it must be opened with the ‘b’ flag on platforms where that makes a difference.  An optionaldialect parameter can be given which is used to define a set of parameters specific to a particular CSV dialect.  It may be an instance of a subclass of the Dialect class or one of the strings returned by thelist_dialects() function.  The other optional fmtparams keyword arguments can be given to override individual formatting parameters in the current dialect.  For full details about the dialect and formatting parameters, see section Dialects and Formatting Parameters.

              返回一个读对象,它会遍历给定的csvfile(可以是支持迭代器协议的任何对象,文件和列表对象都是合适的),每次next()方法调用都会返回一个字符串。如果csvfile是一个文件对象,它必须在有差异的平台上以“b”模式打开文件。一个可选的dialect参数常用来定义一系列特定的csv dialect(不清楚翻译为何为好)参数。它可以是dialect类中的子类或由list_dialects()函数返回的字符串之一的一个实例。其他可选的关键字参数fmtparams可以在当前dialect覆盖个别格式化参数时给出。有关dialect和格式化参数详情,请参照Dialects and Formatting Parameters部分。

       Each row read from the csv file is returned as a list of strings.  No automatic data type conversion is performed.

A short usage example:

>>>

>>> import csv
>>> with open('eggs.csv', 'rb') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
...     for row in spamreader:
...         print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked BeansSpam
Lovely Spam, Wonderful Spam

    Changed in version 2.5: The parser is now stricter with respect to multi-line quoted fields. Previously, if a line ended within a quoted field without a terminating newline character, a newline would be inserted into the returned field. This behavior caused problems when reading files which contained carriage return characters within fields. The behavior was changed to return the field without inserting newlines. As a consequence, if newlines embedded within fields are important, the input should be split into lines in a manner which preserves the newline characters.

      在2.5版本发生变化:解释器现在相对于多行引述领域更加严格。之前,如果一行结束但没有终止换行符,换行符将插入到返回字段。这种情况经常在读取包含回车符的文件时发生错误。这种情况已被修改,返回字段不会插入新行。因此,如果新行嵌入字段很重要,输入应分成在其中保留换行字符的方式。

    

  • csv.writer(csvfile, dialect='excel', **fmtparams)

  • Return a writer object responsible for converting the user’s data into delimited strings on the given file-like object.  csvfile can be any object with awrite() method.  If csvfile is a file object, it must be opened with the ‘b’ flag on platforms where that makes a difference.  An optional dialectparameter can be given which is used to define a set of parameters specific to a particular CSV dialect.  It may be an instance of a subclass of theDialect class or one of the strings returned by thelist_dialects() function.  The other optional fmtparams keyword arguments can be given to override individual formatting parameters in the current dialect.  For full details about the dialect and formatting parameters, see section Dialects and Formatting Parameters. To make it as easy as possible to interface with modules which implement the DB API, the value None is written as the empty string.  While this isn’t a reversible transformation, it makes it easier to dump SQL NULL data values toCSV files without preprocessing the data returned from a cursor.fetch* call. All other non-string data are stringified with str() before being written.

    未完待续。。。


© 著作权归作者所有

共有 人打赏支持
chuang_py
粉丝 3
博文 23
码字总数 6345
作品 0
海淀
程序员
Python CSV文件处理/读写

Python CSV文件处理/读写 CSV全称为“Comma Separated Values”,是一种格式化的文件,由行和列组成,分隔符可以根据需要来变化。 如下面为一csv文件: Title,Release Date,Director And Now ...

liaojie
2014/03/18
0
0
Supporting Python 3(支持python3)——语言区别和暂时解决方法

语言区别和暂时解决方法 这个附录包含一个Python 2和Python 3的不同之处列表以及能不用2to3转换同时在Python 2和Python 3下运行的示例代码。 这个列表是不完整的。在这里列出的只有不包括bug...

在湖闻樟
2015/11/20
0
0
数据挖掘敲门砖--Python爬虫入门

WHAT 数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大。 数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能(不仅于此) 数据分析方向:需要数理知识支撑,比如概率...

fesoncn
01/02
0
0
Python测试远程端口连接时间

人生苦短 我用Python 问题 最近自己服务器访问别人的服务器,有时候会报超时错误,有时候又能够正常访问别人服务器。 思路 最开始猜测是网络不稳定造成的,但是自己没有收集什么时候超时,什...

亚林瓜子
05/10
0
0
[雪峰磁针石博客]python数据分析快速入门教程2-pandas数据结构

Title: python数据分析快速入门教程2-pandas数据结构 Date: 2018-03-31 9:20 Category: 数据分析 Slug: pythonpandascrash_tutorial2 [雪峰磁针石博客]python数据分析快速入门教程1-开胃菜 ...

Python测试开发人工智能
07/10
0
0
django 1.8 官方文档翻译: 3-5-1 使用Django输出CSV

使用Django输出CSV 这篇文档阐述了如何通过使用Django视图动态输出CSV (Comma Separated Values)。 你可以使用Python CSV 库或者Django的模板系统来达到目的。 使用Python CSV库 Python自带了...

apachecn_飞龙
2015/09/04
0
0
Python处理csv、xlsx、pdf

一、csv文件的处理 CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与 Excel 文件不同,CSV 文件中: 值没有类型,所有值都是字符串 ...

blackfoxya
06/08
0
0
谁说小白不能做项目?Python大咖手把手教你采集拉勾网!

全文简介 本文是先采集拉勾网上面的数据,采集的是Python岗位的数据,然后用Python进行可视化。主要涉及的是爬虫&数据可视化的知识。 爬虫部分 先用Python来抓取拉勾网上面的数据,采用的是简...

Python学习
03/08
0
0
AI: 开始学习AI--第一课 Machine Learning 。二,建立机器学习数据模型。

AI:开始学习AI--第一课 Machine Learning 。二,使用预测数据模型。 ML环境创建完成之后,要开始第一个实验如何使用外部数据模型。 在Azure Machine Learning中找到DATASETS 然后单击Sampl...

jason_dct
04/26
0
0
web data scraping的各种解决方案

对于互联网人来说,web data scraping (web数据采集)已经成为一个迫切而又实在的需求。在如今这个开源的时代,问题往往不在于是否有解决方案,而是如何选择适合你的解决方案,因为总是有很多...

xjfengck
2014/08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!! 例子 • rsync -av /etc/passwd /tmp/1.txt • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt rsync格式 • rsync [OPTION] … SRC DEST • rs......

Linux_老吴
15分钟前
0
0
iis php 环境搭建,非常详细的教程

准备篇 一、环境说明: 操作系统:Windows Server 2016 PHP版本:php 7.1.0 MySQL版本:MySQL 5.7.17.0 二、相关软件下载: 1、PHP下载地址: http://windows.php.net/downloads/releases/ph...

T_star
17分钟前
0
0
Day35 rsync通过服务同步

rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口。 log file:指定日志文件。 pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等...

杉下
23分钟前
0
0
【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了...

ios122
23分钟前
0
0
rsync至ssh同步

rsync: 文件同步工具,可实现“增量拷贝”;使用yum安装rsync包 常用选项:-a=-rtplgoD (-r同步目录,-t保持文件的时间属性,-p保持文件的权限属性,-l保持软连接,-g保持文件的属组,-o保持...

ZHENG-JY
29分钟前
0
0
TradingView 学习笔记

#前言 公司最后需要使用TradingView展示K线图走势。由于之前没接触过,拿到文档时一脸蒙逼。还好找到二篇文章+Demo代码,直接改改就行了。 #被批 由于上面的懵懂,有个问题困扰4个小时没解决...

hihubs
29分钟前
0
0
10.28 rsync工具介绍~10.31 rsync通过ssh同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

洗香香
31分钟前
1
0
php如何使用JSON-RPC查找以太坊中的最新块哈希hash值?

我用PHP中开发了一个以太坊块资源管理器,并成功地与我的服务器Geth节点建立了JSON-RPC通信。然而,当我试图找出最后一个区块时,我陷入了困境。我在https://ethereum.gitbooks.io/frontier...

智能合约
37分钟前
1
0
卷积为什么要旋转180度

参考《最容易理解的对卷积(convolution)的解释》 https://blog.csdn.net/bitcarmanlee/article/details/54729807 这篇博客详细讲解了“卷积”,提及了为什么要反转180度,我简述下。 1.卷积的...

datadev_sh
40分钟前
0
0
【2018.07.18学习笔记】【linux高级知识 20.23-20.26】

20.23/20.24/20.25 告警系统邮件引擎 告警系统邮件引擎由两个文件组成,放在/mon/mail/目录下:mail.py、mail.sh mail.py:是邮件的核心python脚本,邮件功能的实现mail.sh:是告警邮件系统...

lgsxp
45分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部