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的Tornado框架的HTTP客户端的教程
Apr 24 Python
Python的pycurl包用法简介
Nov 13 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python中pygame安装过程(超级详细)
Aug 04 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
Mar 10 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
Python几种常见算法汇总
Jun 02 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
如何使用Python实现一个简易的ORM模型
May 12 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
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
开发用到的js封装方法(20种)
2018/10/12 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
租房协议书
2014/04/10 职场文书
2014年保管员工作总结
2014/11/18 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
评职称个人总结
2015/03/05 职场文书
学校学期工作总结
2015/08/13 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python