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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
Python程序员开发中常犯的10个错误
Jul 07 Python
Python实现建立SSH连接的方法
Jun 03 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python实现windows倒计时锁屏功能
Jul 30 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
python实现飞船游戏的纵向移动
Apr 24 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jquery实现的导航固定效果
2014/04/28 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
Cpy和Python的效率对比
2015/03/20 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
简单谈谈python中的多进程
2016/11/06 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python实现FTP服务器服务的方法
2017/04/11 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
护理专业推荐信
2013/11/07 职场文书
大学总结自我鉴定
2014/01/18 职场文书
中国梦团日活动总结
2014/07/07 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Python实现学生管理系统(面向对象版)
2021/06/24 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技