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中的数学运算操作符使用进阶
Jun 20 Python
Python使用functools实现注解同步方法
Feb 06 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
python实现WebSocket服务端过程解析
Oct 18 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
Pycharm安装python库的方法
Nov 24 Python
python生成word合同的实例方法
Jan 12 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php防攻击代码升级版
2010/12/29 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP时间处理类操作示例
2018/09/05 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
Vue2几种常见开局方式详解
2017/09/09 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
three.js实现圆柱体
2018/12/30 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
浅析python连接数据库的重要事项
2021/02/22 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
护理学专业推荐信
2013/12/03 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
高二语文教学反思
2016/02/16 职场文书