Python对csv文件进行操作的方法

  介绍

这篇文章给大家分享的是有关Python对csv文件进行操作的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。


 Python对csv文件进行操作的方法

就可以存储为csv文件,文件内容是:

编号、姓名、年龄、Score1,马邑村,99   2,杰克,21日,89年   3,汤姆,95   80年4日雨,19日

假设上述csv文件保存为“test.csv"

<强> 1。读文件

如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:

<强>第一种方法使读者用函数

接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   import  csv   #读with 开放(“test.csv",,“r",, encoding =,“utf-8"), as  f:   ,,,reader =, csv.reader (f)   ,,,rows =, (row  for  row 拷贝读者)   打印(行)

得到:

[[& # 39;没有强生# 39;,,& # 39;名字# 39;,,& # 39;年龄# 39;,,& # 39;分数# 39;],   ,[& # 39;1 & # 39;,,& # 39;马邑村# 39;,,& # 39;18 & # 39;,,& # 39;99 & # 39;],   ,(& # 39;2 & # 39;,,& # 39;杰克# 39;,,& # 39;21 & # 39;,,& # 39;89 & # 39;],   ,(& # 39;3 & # 39;,,& # 39;汤姆# 39;,,& # 39;25 & # 39;,,& # 39;95 & # 39;],   ,(& # 39;4 & # 39;,,& # 39;雨# 39;,,& # 39;19 & # 39;,,& # 39;80 & # 39;]]

要提取其中某一列,可以用下面的代码:

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   import  csv   #读取第二列的内容   with 开放(“test.csv",,“r",, encoding =,“utf-8"), as  f:   ,,,reader =, csv.reader (f)   ,,,column =,(行[1],for  row 拷贝读者)   打印(列)

得到:

[& # 39;名字# 39;,,& # 39;马邑村# 39;,,& # 39;杰克# 39;,,& # 39;汤姆# 39;,,& # 39;雨# 39;]

注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如名字在第2列,而不能根据& # 39;名字# 39;这个标题查询。

<强>这时可以采用第二种方法:

第二种方法是使用DictReader,和读者函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

#,- *安康;编码:utf-8  - * -   import  csv   #读   with 开放(“test.csv",,“r",, encoding =,“utf-8"), as  f:   ,,,reader =, csv.DictReader (f)   ,,,column =, (row  for  row 拷贝读者)   打印(列)

得到:

[{& # 39;没有# 39;公司:,& # 39;1 & # 39;,,& # 39;年龄# 39;:,& # 39;18 & # 39;,,& # 39;分数# 39;:,& # 39;99 & # 39;,,& # 39;名字# 39;:,& # 39;马邑村# 39;},   ,{& # 39;没有# 39;公司:,& # 39;2 & # 39;,,& # 39;年龄# 39;:,& # 39;21 & # 39;,,& # 39;分数# 39;:,& # 39;89 & # 39;,,& # 39;名字# 39;:,& # 39;杰克# 39;},   ,{& # 39;没有# 39;公司:,& # 39;3 & # 39;,,& # 39;年龄# 39;:,& # 39;25 & # 39;,,& # 39;分数# 39;:,& # 39;95 & # 39;,,& # 39;名字# 39;:,& # 39;汤姆# 39;},   ,{& # 39;没有# 39;公司:,& # 39;4 & # 39;,,& # 39;年龄# 39;:,& # 39;19 & # 39;,,& # 39;分数# 39;:,& # 39;80 & # 39;,,& # 39;名字# 39;:,& # 39;雨# 39;}]

如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   时间=__author__  & # 39;马邑村# 39;   import  csv   #读取名字列的内容   with 开放(“test.csv",,“r",, encoding =,“utf-8"), as  f:   ,,,reader =, csv.DictReader (f)   ,,,column =,(行[& # 39;名字# 39;],for  row 拷贝读者)   打印(列)

得到:

[& # 39;马邑村# 39;,,& # 39;杰克# 39;,,& # 39;汤姆# 39;,,& # 39;雨# 39;]

<强> 2。写文件

读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   时间=__author__  & # 39;马邑村# 39;   import  csv   #写:追加   row =, (& # 39; 5 & # 39;,, & # 39; hanmeimei& # 39;,, & # 39; 23 & # 39;,, & # 39; 81 & # 39;】   out =,开放(“test.csv",,“a",, newline =,,,)   时间=csv_writer  csv.writer (,, dialect =,“excel")   csv_writer.writerow(行)

Python对csv文件进行操作的方法