介绍
这篇文章给大家分享的是有关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文件进行操作的方法