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实现比较两段文本不同之处的方法
May 30 Python
在Django中创建第一个静态视图
Jul 15 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
python批量赋值操作实例
Oct 22 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
Python编写带选项的命令行程序方法
Aug 13 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Django REST Swagger实现指定api参数
Jul 07 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
python 下载文件的几种方式分享
Apr 07 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
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php网站地图生成类示例
2014/01/13 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
物业经理求职自我评价
2013/09/22 职场文书
学生个人求职自荐信格式
2013/09/23 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
企业宣传口号
2014/06/12 职场文书
单位接收函格式
2015/01/30 职场文书
秦兵马俑导游词
2015/02/02 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
mysql sock文件存储了什么信息
2022/07/15 MySQL