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网络爬虫采集联想词示例
Feb 11 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
Python中super函数的用法
Nov 17 Python
Python实现简单的语音识别系统
Dec 13 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
python爬虫实现获取下一页代码
Mar 13 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
pytorch 如何使用amp进行混合精度训练
May 24 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
ThinkPHP3.1查询语言详解
2014/06/19 PHP
php实现微信支付之退款功能
2018/05/30 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
AngularJS中的过滤器使用详解
2015/06/16 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
大学三年的自我评价
2013/12/25 职场文书
促销活动策划方案
2014/01/12 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python