使用Python对Csv文件操作
使用使用 Python 对对 Csv 文件操作文件操作csv 是 Comma-Separated Values 的缩写,是用文本文件形式储存的表格数据,比如如下的表格:就可以存储为 csv 文件,文件内容是:No.,Name,Age,Score1,mayi,18,992,jack,21,893,tom,25,954,rain,19,80假设上述 csv 文件保存为“test.csv“1.读文件读文件如何用 Python 像操作 Excel 一样提取其中的一列,即一个字段,利用 Python 自带的 csv 模块,有两种方法可以实现:第一种方法使用第一种方法使用 reader 函数,接收一个可迭代的对象(比如函数,接收一个可迭代的对象(比如 csv 文件),能文件),能 返回一个生成器,就可以从其中解析出返回一个生成器,就可以从其中解析出 csv 的内容:比如下面的代码可以读取的内容:比如下面的代码可以读取 csv 的全部内容,以行为单位:的全部内容,以行为单位:#!/usr/bin/python3# -*- coding:utf-8 -*-_author_ = 'mayi'import csv#读with open(“test.csv“, “r“, encoding = “utf-8“) as f:reader = csv.reader(f)rows = row for row in readerprint(rows)得到:'No.', 'Name', 'Age', 'Score','1', 'mayi', '18', '99','2', 'jack', '21', '89','3', 'tom', '25', '95','4', 'rain', '19', '80'要提取其中某一列,可以用下面的代码:#!/usr/bin/python3# -*- coding:utf-8 -*-_author_ = 'mayi'import csv#读取第二列的内容 035 棋牌 http:/www.482223.comwith open(“test.csv“, “r“, encoding = “utf-8“) as f:reader = csv.reader(f)column = row1 for row in readerprint(column)得到:'Name', 'mayi', 'jack', 'tom', 'rain'注意从 csv 读出的都是 str 类型。这种方法要事先知道列的序号,比如 Name 在第 2 列,而不能根据'Name'这个标题查询。这时可以采用第二种方法:第二种方法是使用第二种方法是使用 DictReader,和,和 reader 函数类似,接收一个可迭代的函数类似,接收一个可迭代的 对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内, 而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到 Di ctReader 的结构:的结构:# -*- coding:utf-8 -*-_author_ = 'mayi'import csv#读with open(“test.csv“, “r“, encoding = “utf-8“) as f:reader = csv.DictReader(f)column = row for row in readerprint(column)得到:'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'如果我们想用 DictReader 读取 csv 的某一列,就可以用列的标题查询:#!/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 readerprint(column)得到:'mayi', 'jack', 'tom', 'rain'2.写文件写文件读文件时,我们把 csv 文件读入列表中,写文件时会把列表中的元素写入到 csv 文件中。#!/usr/bin/python3 天地棋牌 http:/www.dadiqipaigw.cn# -*- 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)得到: