处理CSV文件

简介:

CSV文件是简化的电子表格,保存为纯文本文件。

CSV文件中的每行代表电子表格中的一行,都好分割了该行中的单元格。

CSV文件是简单的,缺少Excel电子表格的许多功能,但它是表示电子表格数据的直接方式。

CSV格式和它声称的完全一致:它就是一个文本文件,具有逗号分隔的值。

但并非CSV文件中的每个逗号,都表示两个单元格之间的分界。

因为split()方法不能处理CSV文件的转义字符,所以使用CSV模块读写CSV文件。


Reader对象

要用CSV模块从CSV文件中读取数据,需要创建一个Reader对象。

Reader对象迭代遍历CSV文件中的每一行。

CSV模块是python自带的,不需要安装,直接导入可用。

不能将文件名字字符串传递给csv.reader()函数。


样例:

blob.png

1
2
3
4
5
6
7
8
9
>>>  import  csv
>>> file1 = open ( 'file1.csv' )
>>> file1Reader = csv.reader(file1)
>>> file1Data = list (file1Reader)
>>> file1Data
[[ '1' '张三' '男' '28' ], [ '2' '李四' '男' '19' ], [ '3' '王五' '男' '25' ], [ '4' '赵六' '男' '35' ], [ '5' '田七' '男' '54' ]]
>>> file1Data[ 2 ][ 1 ]
'王五'
>>>


要取得行号,就使用Reader对象的line_num变量,它包含了当前行的编号。

Reader对象只能循环遍历一次。要再次读取CSV文件,必须调用csv.reader,创建一个对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>>  import  csv
>>> file1 = open ( 'file1.csv' )
>>> file1Reader = csv.reader(file1)
>>>  for  row  in  file1Reader:
...      print ( 'Row #' + str (file1Reader.line_num) + ' ' + str (row))
...
Row  #1 ['1', '张三', '男', '28']
Row  #2 ['2', '李四', '男', '19']
Row  #3 ['3', '王五', '男', '25']
Row  #4 ['4', '赵六', '男', '35']
Row  #5 ['5', '田七', '男', '54']
>>>  for  row  in  file1Reader:
...      print ( 'Row #' + str (file1Reader.line_num) + ' ' + str (row))
...
>>>


Writer对象

Writer对象将数据写入CSV文件。要创建一个Writer对象,就使用csv.writer()函数。

在windows上,需要为open()函数的newline关键字参数传入一个空字符串。

如果忘记设置newline关键字参数,CSV文件中的行距将有两倍。

在CSV文件中使用双引号,防止逗号被自动转义。


样例:

1
2
3
4
5
6
7
8
9
10
>>>  import  csv
>>> file1 = open ( 'file1.csv' , 'w' ,newline = '')
>>> file1Writer = csv.writer(file1)
>>> file1Writer.writerow([ '1' , 'Tom' , 'male' , '22' ])
15
>>> file1Writer.writerow([ '2' , 'Jack' , 'male' , '29' ])
16
>>> file1Writer.writerow([ '3' , 'Linda' , 'female' , '37' ])
19
>>> file1.close()

blob.png










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2071228,如需转载请自行联系原作者

相关文章
|
3月前
|
关系型数据库 大数据 Python
如何快速创建千万行CSV 数据?
如何快速创建千万行CSV 数据?
|
12月前
|
C# 数据库 Windows
C#开发:CSV文件写入
C#开发:CSV文件写入
177 0
|
8月前
|
数据挖掘 Python
大神是这样处理 CSV 数据的
大神是这样处理 CSV 数据的
|
10月前
|
数据处理
R|批量循环处理同一格式文件-csv,txt,excel
R|批量循环处理同一格式文件-csv,txt,excel
|
11月前
|
数据处理 Python
多线程操作CSV文件并且将CSV文件转成XLSX文件
多线程操作CSV文件并且将CSV文件转成XLSX文件
156 0
|
关系型数据库 数据库 PostgreSQL
导出CSV文件
导出CSV文件
332 0
C#读取CSV
public class CSVFileHelper { /// /// 将DataTable中数据写入到CSV文件中 /// /// 提供保存数据的DataTable /// CSV的文件路径 public static voi...
2086 0
|
JSON 数据格式 索引
深入理解pandas读取excel,txt,csv文件等命令
深入理解pandas读取excel,txt,csv文件等命令 pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.
6755 0