Python 文本文件内容批量抽取 - Go语言中文社区

Python 文本文件内容批量抽取


Python新手编写脚本处理数据,各种心酸各种语法查找,以此留念!

原始数据格式如下图所示:

    这里是一个人脸测试数据,其中每行第一个为测试图片编号,后面为Top 7图片编号及其对应的评分,即与测试图片的相似度度量结果。我们这里的目的是将每行Top 7对应的评分数据抽取出来,并且将评分第二的数值与一个阈值(这里是0.7)进行比较,超过阈值表示此次测试成功,结果为正样本,记为1,否则置0。并最终将其保存至另一个文本文件用于作为机器学习模型的训练样本数据。 Python脚本处理后的文件格式如下所示:

    对应的Python代码如下所示,附有小白详细注释。。。

# -*- coding: cp936 -*-
import re
import linecache
filename = 'face_test_data.txt'

with open(filename, 'r') as f:
    line = f.readline()
    while line:
        eachline = line.split()###按行读取文本文件
        #print eachline 返回一个列表,以空格作为元素拆分标识
        #print line 返回的是一整行数据,相当于一个字符串元素
        count = len(eachline)#返回列表长度,即列表元素数目
        n = 0
        element = []#初始化空列表用于存储所需评分数据
        while n < count:
            elem_index = eachline[n:n+1] #类型为列表
            #print elem_index, len(elem_index[0])
            #print elem_index 返回类型为列表
            if len(elem_index[0]) > 24:
                element.append(elem_index[0][25:])
            #element = [qiege(elem_index[n]) for elem_index in eachline]
            n=n+1
        #print element[1] #概率数值列表
        
        if element[1] >= '0.7':
            element.append(1)
            #print '1'
        else:
            element.append(0)
            #print '0'
            
        #生成每行末尾有t文件
        '''    
        file = open('preprocess.txt', 'a')
        for i in range(len(element)):
            file.write(str(element[i])+'t')
        file.write('n')
        file.close()
        '''
        #生成每行末尾无t文件,可直接用于np.loadtxt()读取文本生成矩阵数据
        file = open('_preprocess.txt', 'a')
        for i in range(len(element)-1):
            file.write(str(element[i])+'t')
        file.write(str(element[-1])+'n')
        #file.write('n')
        file.close() 

        line = f.readline()

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_22885109/article/details/80819916
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 21:27:10
  • 阅读 ( 794 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢