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实现每次处理一个字符的三种方法
Oct 09 Python
python实现带错误处理功能的远程文件读取方法
Apr 29 Python
Python检测生僻字的实现方法
Oct 23 Python
Python常用库推荐
Dec 04 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Numpy之reshape()使用详解
Dec 26 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python urlopen()参数代码示例解析
Dec 10 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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脚本[带参数]的方法
2010/01/22 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
JavaScript 应用类库代码
2008/06/02 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
详解如何运行vue项目
2019/04/15 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python中按值来获取指定的键
2019/03/04 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Python识别处理照片中的条形码
2020/11/16 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
美工的岗位职责
2013/11/14 职场文书
《四季》教学反思
2014/04/08 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
村党组织公开承诺书
2015/04/30 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS