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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
详解Python中with语句的用法
Apr 15 Python
python实现批量按比例缩放图片效果
Mar 30 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
python默认参数调用方法解析
Feb 09 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
在keras下实现多个模型的融合方式
May 23 Python
用Python实现职工信息管理系统
Dec 30 Python
详解非极大值抑制算法之Python实现
Jun 28 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新手入门学习方法
2011/05/08 PHP
php中异常处理方法小结
2015/01/09 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
jQuery的一些注意
2006/12/06 Javascript
jscript之List Excel Color Values
2007/06/13 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
浅析python中的分片与截断序列
2016/08/09 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
初一生物教学反思
2014/01/18 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL