python读取各种文件数据方法解析
作者:yiweiyi329 发布时间:2021-08-31 09:16:54
标签:python,读取文件
python读取.txt(.log)文件 、.xml 文件 、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解
1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾的文件)
以下是文件中的内容,文件名为data.txt(与data.log内容相同),且处理方式相同,调用时改个名称就可以了:
以下是python实现代码:
# -*- coding:gb2312 -*-
import json
def read_txt_high(filename):
with open(filename, 'r') as file_to_read:
list0 = [] #文件中的第一列数据
list1 = [] #文件中的第二列数据
while True:
lines = file_to_read.readline() # 整行读取数据
if not lines:
break
item = [i for i in lines.split()]
data0 = json.loads(item[0])#每行第一个值
data1 = json.loads(item[1])#每行第二个值
list0.append(data0)
list1.append(data1)
return list0,list1
list0与list1分别为文档中的第一列数据与第二列数据。运行若是文本文件(.txt结尾的文件)输入以下:
aa,bb = read_txt_high('data.txt')
print aa
print bb
若是日志文件(.log结尾的文件),输入以下:
aa,bb = read_txt_high('data.log')
print aa
print bb
运行结果如下:
2.读取.xml结尾的文件
XML文件的名称为abc.xml, 内容如下图所示:
以下是实现代码:
# -*- coding:gb2312 -*-
# coding = utf-8
from pylab import *
import xml.dom.minidom
def read_xml():
dom = xml.dom.minidom.parse('abc.xml')#打开xml文档
cc=dom.getElementsByTagName('caption')
list_str = [] #字符串
for item in cc:
list_str.append(str(item.firstChild.data))
bb = dom.getElementsByTagName('maxid')
list_fig = []
for item in bb:
list_fig.append(item.firstChild.data)
su = list_fig[0].encode("gbk")
list_fig2 = su.split(",")
list_fig_num = []
for i in list_fig2:
list_fig_num.append(int(i))
ee = dom.getElementsByTagName('time')
list_tim = []
for item in ee:
list_tim.append(item.firstChild.data)
sg = list_tim[0].encode("gbk")
list_time = sg.split(",")
gg = dom.getElementsByTagName('font_size')
g1 = []
for item in gg:
g1.append(item.firstChild.data)
su = g1[0].encode("gbk")
return list_str,list_fig_num,list_time,su
调用此函数如下所示:
a,b,c,d = read_xml()
print a
print b
print c
print d
输出结果如下图所示:
3.读取excel文件数据,并将其存入list列表中
excel表格中的数据如下图所示,表格命名为data.xlsx:
首先将ID列中的数据保存到列表list_col中,实现代码如下所示:
# -*- coding: utf-8 -*-
import xlrd
import json
def read_ex_stop_PTline():
# 打开文件
workbook = xlrd.open_workbook(r'data.xlsx')
sheet = workbook.sheet_by_name('PTline')
list_col = []
for i in range(1,sheet.nrows):
c = sheet.cell(i,3).value
list_col.append(int(c))
print list_col
调用此函数,输出结果如下:
以下将linkIDsequence列数据存放到一个list中,即list_ele中,实现代码如下:
# -*- coding: utf-8 -*-
import xlrd
import json
def read_ex_stop_PTline():
# 打开文件
workbook = xlrd.open_workbook(r'data.xlsx')
sheet = workbook.sheet_by_name('PTline')
list_ele = [] #第八列的所有数据放入一个list中
for i in range(1,sheet.nrows):
c = sheet.cell(i, 8).value
cc = json.loads(c) #第八列的每个单元格处理为一个list
for j in range(len(cc)):
list_ele.append(cc[j])
print list_ele
调用函数read_ex_stop_PTline,输出结果如下图所示:
来源:https://blog.csdn.net/yiweiyi329/article/details/78184226


猜你喜欢
- 最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引。用过之后发现它启动快速,插件丰富,下
- 绘制图形时使用了中文标题,会出现乱码原因是matplotlib.pyplot在显示时无法找到合适的字体。先把需要的字体(在系统盘C盘的win
- 一.克隆表法一mysql> create table info1 like info;复制格式,通过LIKE方法,复制info表结构生
- 代理模式Proxy模式是一种常用的设计模式,它主要用来通过一个对象(比如B)给一个对象(比如A) 提供'代理'的方式方式访问
- 以前写代码时,都是直接将程序绑定到唯一端口提供http/https服务,在外层通过反向代理(nginx/caddy)来实现http和http
- MYSQL的profiling功能要在Mysql版本5.0.37以上才能使用。查看profile是否开启mysql> show var
- 【问题描述】我们生产环境有一组集群的多台MySQL服务器(MySQL 5.6.21),不定期的会crash,但error log中只记录了重
- window.onload = function(){ var gaga = document.getElementById( "
- 1.基本构架:mport PIL.Image 相关模块img=Image.open(img_name) 打开图片img.save(save_
- 在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。通俗来说,它就是用来存储一系列数据的。比如存储一个班级的
- 在向大家详细介绍Linux mysql之前,首先让大家了解下Linux mysql,然后全面介绍Linux mysql,希望对大家有用。1.
- 一,编程环境PyCharm2016,Anaconda3 Python3.6需要安装schedule模块,该模块网址:https://pypi
- 下面介绍两种查看django 执行的sql语句的方法。方法一:queryset = Apple.objects.all()print que
- 这个任务是自己在项目中数据处理的一部分内容,待处理的图片如下所示:我需要将目标区域给裁剪出来,要不然在后期训练网络的时候整幅图像过大,且目标
- Tensorflow中,主要有以下几种数据类型(dtype),在旧版本中,不用加tf也能使用。有符号整型tf.int8:8位整数。tf.in
- 我们在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一
- 情境还原: 公司一项目新上线,刚上线的第2天,在后台发现数据库服务器与IIS服务器的网络IO出现瓶颈,1GB的网络带宽,占用了70%-100
- 'subject 信息标题 'company 发布信息的公司名称 'cont
- 我就废话不多说了,大家还是直接看代码吧~import numpy as np#从scipy库中导入插值需要的方法 interpolatefr
- #!/usr/bin/python import sys def left_child(node): return node * 2 + 1