教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python如何对csv文件进行操作

Python如何对csv文件进行操作

发布时间:2021-12-10   编辑:jiaochengji.com
教程集为您提供Python如何对csv文件进行操作等资源,欢迎您收藏本站,我们将为您提供最新的Python如何对csv文件进行操作资源

<span style="color: rgb(20, 25, 30); font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; font-size: 14px;"></span>

<span style="color: rgb(20, 25, 30); font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; font-size: 14px;">csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:</span>

ww.png

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

<pre class="brush:php;toolbar:false">No.,Name,Age,Score1,mayi,18,99 2,jack,21,89 3,tom,25,95 4,rain,19,80</pre>

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

1.读文件

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

第一种方法使用reader函数

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

<pre class="brush:php;toolbar:false">#!/usr/bin/python3 # -*- coding:utf-8 -*- import csv #读with open("test.csv", "r", encoding = "utf-8") as f:     reader = csv.reader(f)     rows = [row for row in reader] print(rows)</pre>

得到:

<pre class="brush:php;toolbar:false">[['No.', 'Name', 'Age', 'Score'],  ['1', 'mayi', '18', '99'],  ['2', 'jack', '21', '89'],  ['3', 'tom', '25', '95'],  ['4', 'rain', '19', '80']]</pre>

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

<pre class="brush:php;toolbar:false">#!/usr/bin/python3 # -*- coding:utf-8 -*- import csv #读取第二列的内容 with open("test.csv", "r", encoding = "utf-8") as f:     reader = csv.reader(f)     column = [row[1] for row in reader] print(column)</pre>

得到:

<pre class="brush:php;toolbar:false">['Name', 'mayi', 'jack', 'tom', 'rain']</pre>

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

相关推荐:《Python视频教程》

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

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

<pre class="brush:php;toolbar:false"># -*- coding:utf-8 -*- import csv #读 with open("test.csv", "r", encoding = "utf-8") as f:     reader = csv.DictReader(f)     column = [row for row in reader] print(column)</pre>

得到:

<pre class="brush:php;toolbar:false">[{'No.': '1', 'Age': '18', 'Score': '99', 'Name': 'mayi'},  {'No.': '2', 'Age': '21', 'Score': '89', 'Name': 'jack'},  {'No.': '3', 'Age': '25', 'Score': '95', 'Name': 'tom'},  {'No.': '4', 'Age': '19', 'Score': '80', 'Name': 'rain'}]</pre>

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

<pre class="brush:php;toolbar:false">#!/usr/bin/python3 # -*- coding:utf-8 -*- __author__ = 'mayi' import csv #读取Name列的内容 with open("test.csv", "r", encoding = "utf-8") as f:     reader = csv.DictReader(f)     column = [row['Name'] for row in reader] print(column)</pre>

得到:

<pre class="brush:php;toolbar:false">['mayi', 'jack', 'tom', 'rain']</pre>

2.写文件

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

<pre class="brush:php;toolbar:false">#!/usr/bin/python3 # -*- coding:utf-8 -*- __author__ = 'mayi' import csv #写:追加 row = ['5', 'hanmeimei', '23', '81'] out = open("test.csv", "a", newline = "") csv_writer = csv.writer(out, dialect = "excel") csv_writer.writerow(row)</pre>

得到:

qq.png

您可能感兴趣的文章:
php读取csv、写入csv与导出csv文件
Python如何对csv文件进行操作
python如何导入csv文件格式
如何将数据导入python
解决php csv文件导入mysql中文乱码
golang sqlx scan 到结构体中_GOLANG:使用SQLX库执行简单的SQL语句
php读取csv文件内容的实例代码
用python以字典方式写入csv文件实现操作
如何用python打开csv文件路径
python以字典方式写入csv文件实现步骤

[关闭]
~ ~