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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
详解Python 正则表达式模块
Nov 05 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
Python操作Elasticsearch处理timeout超时
Jul 17 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页面缓存ob系列函数介绍
2012/10/18 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
深入理解python多进程编程
2016/06/12 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
简单实现python收发邮件功能
2018/01/05 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
集体备课反思
2014/02/12 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
学校与家长安全责任书
2014/07/23 职场文书
民事授权委托书范文
2014/08/02 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书