python读写csv文件方法详细总结


Posted in Python onJuly 05, 2019

python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来。

在编写python程序的时候需要csv模块或者pandas模块,其中csv模块使不需要重新下载安装的,pandas模块需要按照对应的

python版本安装。

在python2环境下安装pandas的方式是:

sudo pip install pandas

在python3环境下安装pandas的方式是:

sudo pip3 install pandas

1、使用csv读写csv文件方法总结

读文件的时候,打开文件,调用csv.reader()读取文件;对于读取之后的文件的内容,要把这些内容输入到另一个文件中保存,可以通过遍历读取的文件的每一行,然后使用csv_write.writerow()的方式写入到指定的文件。

2、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
#读取csv文件
csv_file = csv.reader(open('../../data/capital/2010-Q4-cabi-trip-history-data.csv'))
print(csv_file)
 
#添加newline可以避免一行之后的空格,这样需要在python3环境下运行
out = open('../../data/capital/2010-Q4','a',newline='')
csv_write = csv.writer(out,dialect='excel')
 
for item in csv_file:
	#print item
	csv_write.writerow(item)
 
print("write over")

上面的代码是传统的打开文件---读取文件---打开文件---关闭文件的方式进行文件读取和写入。在读取和写入的过程中分别调用了csv库的reader()和writer()

3、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
#下面这种加了encoding的写法需要在python3环境下运行
csv_reader = csv.reader(open('../../data/capital/2011-Q1-cabi-trip-history-data.csv',encoding='utf-8'))
 
out = open('../../data/capital/a0','w',newline='')
csv_writer = csv.writer(out,dialect='excel')
 
 
for row in csv_reader:
	#输出的每一行是一个list,list中的每一个元素转换成了string类型
	print(row)
		csv_writer.writerow(row)

示例代码2的读写方式与示例代码1的方式基本相同,不同的是在示例代码2中打开文件的时候指定了打开时的编码方式,对于输出文件的打开方式也与示例代码1的方式有少量的差别,把写入方式右'a'改成了'w

4、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
#读取csv文件方式1
csvFile = open('../../data/capital/2011-Q3-cabi-trip-history-data.csv','r')
reader = csv.reader(csvFile)
 
data = []
 
for item in reader:
#	print(item)
	data.append(item)
 
#print(data)
 
csvFile.close()
 
 
#读取csv文件方式2
with open("../../data/capital/2011-Q3-cabi-trip-history-data.csv",'r') as csvFile:
	#读取csv文件,返回的是迭代类型
	reader2 = csv.reader(csvFile)
	for item2 in reader2:
		print(item2)
csvFile.close()
 
 
#从列表写入csv文件
#设置newline,否则两行之间会空一行
csvFile2 = open('../../data/capital/0001.csv','w',newline='')
writer = csv.writer(csvFile2)
m = len(data)
for i in range(m):
	writer.writerow(data[i])
csvFile2.close()
 
 
#从字典写入csv文件
dic = {'张三':123,'李四':456,'王二娃':789}
csvFile3 = open('../../data/capital/0001.csv','w',newline='')
writer2 = csv.writer(csvFile3)
for key in dic:
	print(key)
#	writer2.writerow([key,dic[key]])
 
csvFile3.close()

在上面的代码中提出了两种不同的打开csv文件和写入csv文件的方式。其中第一种打开方式与前面两种非常相似,不同之处是在这种方式中,打开文件的时候加入了读取方式,而前面两个示例代码没有加。另一种读取方式是采用python中独有的命名方式对打开文件命名,其他部分相似。在这个示例中,对列表和字典写入csv文件做了区分,分别提供了列表和字典写入csv文件的示例代码。

5、使用csv读写csv文件示例代码

#encoding:utf-8
'''
import pandas as pd
#任意的多组列表
a = [1,2,3]
b = [4,5,6]
#字典中的key值即为csv中的列名
dataFrame = pd.DataFrame({'a_name':a,'b_name':b})
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataFrame.to_csv('0001.csv',index=False,sep='')
#pandas提供的读取csv的方法
data = pd.read_csv('test.csv')
'''
 
 
#===================================
#另一种方法:用csv包,一行一行写入
import csv
 
#python2可以用file替代open
with open('test.csv','w') as csvFile:
	writer = csv.writer(csvFile)
	#先写columns_name
	writer.writerow(["index","a_name","b_name"])
	#写入多行用writerows
	writer.writerows([[1,2,3],[0,1,2],[4,5,6]])
 
#用reder读取csv文件
with open('test.csv','r') as csvFile:
	reader = csv.reader(csvFile)
	for line in reader:
		print line

这个示例代码提出了写入一行和写入多行的实现方式。

6、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
 
with open('test.csv') as csvFile:
	#readcsv = csv.reader(csvFile,delimiter='')
	readcsv = csv.reader(csvFile)
	#
	rows= [row for row in readcsv]
	for row in readcsv:
		rows= [row for row in reader]
		#print(row)#打印一行
		print(row[0])#打印一行中的某个cell
		print(row[0],row[1])#打印一行中的某个cell
 
print('=================')
 
with open('test.csv') as csvFile:
	readCSV = csv.reader(csvFile)
	cols1 = []
	cols2 = [] 
	cols3 = []
	for row in readCSV:
		col1 = row[0]	
		col2 = row[1]
		col3 = row[2]
		
		cols1.append(col1)
		cols2.append(col2)
		cols3.append(col3)
 
print cols1
print cols2
print cols3

上面的代码示例提出了读取所有行的新写法,提出了读取某个cell和某一列的方式。

7、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
#第一种方法:使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容.eg:下面的代码可以读取csv的全部内容,以行为单位
with open('test.csv','rb') as csvFile:
	reader = csv.reader(csvFile)
	rows = [row for row in reader]
 
print rows
 
 
print('===========')
 
#提取其中某一列可以使用下面的方法
with open('test.csv','rb') as csvFile:
	reader = csv.reader(csvFile)
	column = [row[1] for row in reader]
print column
 
 
 
print('======第二种方法======')
#第二种方法:使用DictReader,和reader函数类似,接收可迭代的对象,能返回一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题.用下面的代码可以看到DictReader的结构:
with open('test.csv','rb') as csvFile:
	reader = csv.DictReader(csvFile)
	column = [row for row in reader]
print(column)
 
#使用CictReader读取csv的某一列,这样可以按照列的标题查询
with open('test.csv','rb') as csvFile:
	reader = csv.DictReader(csvFile)
	column = [row['a_name'] for row in reader]
print column

上面的代码提出了读取整行和整列的新方式。另外提出了一种使用DictReader的方式按照列名读取的方式。

8、使用csv读写csv文件示例代码

#encoding:utf-8
import csv
 
with open('test.csv','rb') as csvFile:
	reader = csv.reader(csvFile)
	for row in reader:
		print row
 
#向csv文件中写内容,这样写会把内容全部写到一个cell中
with open('test1.csv','wb') as csvFile:
	writer = csv.writer(csvFile,delimiter=' ',quotechar='|',quoting=csv.QUOTE_MINIMAL)
	writer.writerow(['a','4','5','6'])
	writer.writerow(['b','1','2','3'])
	writer.writerow(['c','9','8','7'])
	writer.writerow(['d','8','3','1'])
 
 
#向csv文件中写内容,下面的写法最终可以把每一列的内容放在一个cell中
with open('test2.csv','wb') as csvFile:
	writer = csv.writer(csvFile,dialect='excel')
	writer.writerow(['a','4','5','6'])
	writer.writerow(['b','1','2','3'])
	writer.writerow(['c','9','8','7'])
	writer.writerow(['d','8','3','1'])

上面的代码提出了可以把列表中的数据放入到不同cell的实现方式。

Python 相关文章推荐
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
构建Python包的五个简单准则简介
Jun 15 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
详解python之协程gevent模块
Jun 14 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
python3爬虫中多线程的优势总结
Nov 24 Python
Python使用openpyxl批量处理数据
Jun 23 Python
Python考拉兹猜想输出序列代码实践
Jul 05 #Python
python读写csv文件实例代码
Jul 05 #Python
python暴力解压rar加密文件过程详解
Jul 05 #Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 #Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 #Python
python 自动轨迹绘制的实例代码
Jul 05 #Python
python实现ip代理池功能示例
Jul 05 #Python
You might like
php防止网站被刷新的方法汇总
2014/12/01 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
php并发加锁示例
2016/10/17 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
PyQt5实现登录页面
2020/05/30 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
局域网标准
2016/09/10 面试题
项目资料员岗位职责
2013/12/10 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
小学教师师德反思
2014/02/03 职场文书
农村葬礼主持词
2014/03/31 职场文书
四风问题查摆材料
2014/08/25 职场文书
怎样写观后感
2015/06/19 职场文书
教师节校长致辞
2015/07/31 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
python flappy bird小游戏分步实现流程
2022/02/15 Python