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 try异常处理机制
Jun 01 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
python如何实现一个刷网页小程序
Nov 27 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
Python实现名片管理系统
Feb 14 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
python 日志 logging模块详细解析
Mar 31 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
django rest framework 过滤时间操作
Jul 12 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
Web开发之JavaScript
2012/03/29 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
Vue组件开发初探
2017/02/14 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
python 简单的多线程链接实现代码
2016/08/28 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
好矿嫂事迹材料
2014/01/21 职场文书
实习指导老师评语
2014/04/26 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
承诺书模板
2014/08/30 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL