Python对CSV、Excel、txt、dat文件的处理


Posted in Python onSeptember 18, 2018

python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容)

1、读取

1.1基于python csv库

#3.读取csv至字典x,y
import csv
# 读取csv至字典
csvFile = open(r'G:\训练小样本.csv', "r")
reader = csv.reader(csvFile)
#print(reader)
# 建立空字典
result = {}
i=0
for item in reader:
 if reader.line_num==1:
 continue
 result[i]=item
 i=i+1
# 建立空字典 
j=0
xx={}
yy={}
for i in list(range(29)):
 xx[j]=result[i][1:-1]
 yy[j]=result[i][-1]
 # print(x[j])
 # print(y[j])
 j=j+1
csvFile.close()
##3.1字典转换成list
X=[]
Y=[]
for i in xx.values():
 X.append(i)
for j in xx.values():
 X.append(j)

改进的CSV读取,直接从CSV文件读取到 list:

#加载数据 
def loadCSV(filename): 
 dataSet=[] 
 with open(filename,'r') as file: 
 csvReader=csv.reader(file) 
 for line in csvReader: 
 dataSet.append(line) 
 return dataSet

读取的方式,是一行一行读取。

1.2 pandas读取

import pandas as pd
test_df = pd.read_excel(r'G:\test_linearRegression.xlsx')

2、写入

import csv
#程序三
with open(r'G:\0pythonstudy\chengxu\test.csv','w',newline='') as myFile: 
 myWriter=csv.writer(myFile) 
 myWriter.writerow([7,'g']) 
 myWriter.writerow([8,'h']) 
 myList=[[1,2,3],[4,5,6]] 
 myWriter.writerows(myList) 
# myFile.close()
with open(r'G:\0pythonstudy\chengxu\test.csv',"r") as data:
 result=csv.reader(data)
 for item in result:
 print(item)

写入,如果纯用 open(r'G:\0pythonstudy\chengxu\test.csv','w'),就会出现多出一空行。

二、Excel文件处理

1、读取
方法一:

使用Python的 xlrd包。

#1、导入模块
import xlrd
#2、打开Excel文件读取数据
data = xlrd.open_workbook('test_data.xlsx')
# print('data',data)
#3、使用技巧
#获取一个工作表
table = data.sheets()[0] #通过索引顺序获取
# print('table',table)
print(table.nrows)#table 行数
print(table.ncols)
table = data.sheet_by_index(0) #通过索引顺序获取
# print('table',table)
table = data.sheet_by_name(u'Sheet1')#通过名称获取
# 获取整行和整列的值(数组)
i=1
print(table.row_values(i))#获得第i行数据
print(table.col_values(i))#获得第i列数据

运行结果:

9
2
[2.0, 6.0]
[5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0]

方法二:

或者,可以把Excel文件转换成csv格式文件,直接修改后缀名,好像会出错,还是建议另存为修改成csv文件。

方法三:
使用pandas包

import pandas as pd
test_df = pd.read_excel(r'G:\test.xlsx')

pandas 读取为dataframe格式,其中dataframe.values是nparray格式,nparray.tolist()是python list 格式。

注意:pandas和 xlrd的区别在于,pandas会把第一行和第一列作为索引的表头;xlrd则会把所有的数据都读取,没有索引表头一说。

三、dat文件处理

把.dat文件修改成.txt格式文件。
这里可以参考 python批量更改文件后缀名 一文。

四、txt文件处理

a = numpy.loadtxt('odom.txt')

a [[ 2.49870000e-01
 2.50250000e-01
 [ 3.64260000e+03
 3.72430000e+03
 [ 4.53960000e+03
 4.50590000e+03
 ...,
 [ 4.74110000e+01
 4.89660000e+01
 [ 4.10930000e+01
 4.20480000e+01
 [ 1.83510000e+01
 1.68250000e+01
a.shape (52, 500)
fp = open('test.txt','r')
lines = fp.readlines()
fp.close()
for line in lines:
 username = line.split(',')[0]
 password = line.split(',')[1]

注:第一句是以只读方式打开文本文件;第二个是读取所有行的数据(read:读取整个文件;readline:读取一行数据);最后一定要关闭文件。最终会返回一个列表,通过for循环可以一个个的读取其中的数据。如username,password。这时候通过split方法进行分割,最终可以得到username    password,这样就可以在自动化里面做参数化了。

python读取CSV文件

import csv
date =csv.reader(open('test.csv','r'))
for test in date:
 print test
 print test[0]

注:需要先导入csv包,然后通过reader方法读取内容,最终会返回一个列表。想选择某一列数据,只需要制定列表下标即可

python读取excel

需要先安装xlrd模块

账号 密码 备注
import xlrd
book=xlrd.open_workbook(data_dirs()+'/system.xlsx')
sheet=book.sheet_by_index(0)
print sheet.cell_value(0,2)

注:(0,2)表示第二行第三列的数据,也就是:备注

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
Python 实现自动导入缺失的库
Oct 29 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python实现mean-shift聚类算法
Jun 10 Python
python基础之类属性和实例属性
Oct 24 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
python 3.6.4 安装配置方法图文教程
Sep 18 #Python
python 3.6.5 安装配置方法图文教程
Sep 18 #Python
python的pip安装以及使用教程
Sep 18 #Python
windows下python安装小白入门教程
Sep 18 #Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 #Python
浅述python中深浅拷贝原理
Sep 18 #Python
python实现指定文件夹下的指定文件移动到指定位置
Sep 17 #Python
You might like
我用php+mysql写的留言本
2006/10/09 PHP
php简单日历函数
2015/10/28 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python中的推导式使用详解
2015/06/03 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
2014年五四青年节演讲稿范文
2014/04/22 职场文书
年度评优评先方案
2014/06/03 职场文书
合作协议书格式
2014/08/19 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
同意离婚答辩状
2015/05/22 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python