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中if __name__ == "__main__"详细解释
Oct 21 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
python实现SMTP邮件发送功能
Jun 16 Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
Python的标准模块包json详解
Mar 13 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Python简易计算器制作方法代码详解
Oct 31 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
如何利用python创作字符画
Jun 25 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
编译问题
2006/10/09 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
js获取页面description的方法
2015/05/21 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
jQuery替换节点元素的操作方法
2018/03/18 jQuery
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
vue登录注册实例详解
2019/09/14 Javascript
python中OrderedDict的使用方法详解
2017/05/05 Python
Python实现的端口扫描功能示例
2018/04/08 Python
python实现自动发送邮件
2018/06/20 Python
Python实现端口检测的方法
2018/07/24 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
一个入门级python爬虫教程详解
2021/01/27 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
数据库连接池的工作原理
2012/09/26 面试题
2014年学校禁毒工作总结
2014/12/23 职场文书
环卫工人慰问信
2015/02/15 职场文书
校园广播站开场白
2015/06/01 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
python基础之while循环语句的使用
2021/04/20 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android