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获取GY-85九轴模块信息示例
Dec 05 Python
简单的Python抓taobao图片爬虫
Oct 26 Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Python Web编程之WSGI协议简介
Jul 18 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Django处理多用户类型的方法介绍
May 18 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
python的Jenkins接口调用方式
May 12 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 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
Zerg建筑一览
2020/03/14 星际争霸
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
python生成随机图形验证码详解
2017/11/08 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
python exit出错原因整理
2020/08/31 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
大学生如何写自荐信
2014/01/08 职场文书
年级组长自我鉴定
2014/02/22 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
党员评议自我评价
2015/03/03 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python