苏州优秀网站设计企业,做网站推广的方法,企业文化建设的重要性,昆山网站建设公司站长用Python写了一个可以提取csv任一列的代码#xff0c;欢迎使用。
Github链接
csv是Comma-Separated Values的缩写#xff0c;是用文本文件形式储存的表格数据#xff0c;比如如下的表格#xff1a;就可以存储为csv文件#xff0c;文件内容是#xff1a;
No.,Name,Ag…站长用Python写了一个可以提取csv任一列的代码欢迎使用。
Github链接
csv是Comma-Separated Values的缩写是用文本文件形式储存的表格数据比如如下的表格就可以存储为csv文件文件内容是
No.,Name,Age,Score
1,Apple,12,98
2,Ben,13,97
3,Celia,14,96
4,Dave,15,95
假设上述csv文件保存为A.csv如何用Python像操作Excel一样提取其中的一行也就是一条记录利用Python自带的
csv模块有两种方法可以实现
第一种方法使用reader函数接收一个可迭代的对象比如csv文件能返回一个生成器就可以从其中解析出csv的内容比如下面的代码可以读取csv的全部内容以行为单位
import csv
with open(A.csv,rb) as csvfile:
reader csv.reader(csvfile)
rows [row for row in reader]
print rows得到
[[No., Name, Age, Score],
[1, Apple, 12, 98],
[2, Ben, 13, 97],
[3, Celia, 14, 96],
[4, Dave, 15, 95]]
要提取其中第二行可以用下面的代码
import csv
with open(A.csv,rb) as csvfile:
reader csv.reader(csvfile)
for i,rows in enumerate(reader):
if i 2:
row rows
print row得到
[2, Ben, 13, 97]这种方法是通用的方法要事先知道行号比如Ben的记录在第2行而不能根据Ben这个名字查询。这时可以采用第二种方法
第二种方法是使用DictReader和reader函数类似接收一个可迭代的对象能返回一个生成器但是返回的每一个单元格都放在一个字典的值内而这个字典的键则是这个单元格的标题即列头。用下面的代码可以看到DictReader的结构
import csv
with open(A.csv,rb) as csvfile:
reader csv.DictReader(csvfile)
rows [row for row in reader]
print rows得到
[{Age: 12, No.: 1, Score: 98, Name: Apple},
{Age: 13, No.: 2, Score: 97, Name: Ben},
{Age: 14, No.: 3, Score: 96, Name: Celia},
{Age: 15, No.: 4, Score: 95, Name: Dave}]
如果我们想用DictReader读取csv的某一列就可以用列的标题查询
import csv
with open(A.csv,rb) as csvfile:
reader csv.DictReader(csvfile)
for row in reader:
if row[Name]Ben:
print row就得到
{Age: 13, No.: 2, Score: 97, Name: Ben}可见DictReader很适合读取csv的的行记录。