溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python 文本文件內(nèi)容批量抽取實(shí)例

發(fā)布時(shí)間:2020-08-30 05:36:55 來源:腳本之家 閱讀:137 作者:zetn_liu 欄目:開發(fā)技術(shù)

Python新手編寫腳本處理數(shù)據(jù),各種心酸各種語法查找,以此留念!

原始數(shù)據(jù)格式如下圖所示:

Python 文本文件內(nèi)容批量抽取實(shí)例

這里是一個(gè)人臉測試數(shù)據(jù),其中每行第一個(gè)為測試圖片編號,后面為Top 7圖片編號及其對應(yīng)的評分,即與測試圖片的相似度度量結(jié)果。我們這里的目的是將每行Top 7對應(yīng)的評分?jǐn)?shù)據(jù)抽取出來,并且將評分第二的數(shù)值與一個(gè)閾值(這里是0.7)進(jìn)行比較,超過閾值表示此次測試成功,結(jié)果為正樣本,記為1,否則置0。并最終將其保存至另一個(gè)文本文件用于作為機(jī)器學(xué)習(xí)模型的訓(xùn)練樣本數(shù)據(jù)。

Python腳本處理后的文件格式如下所示:

Python 文本文件內(nèi)容批量抽取實(shí)例

對應(yīng)的Python代碼如下所示,附有小白詳細(xì)注釋。

# -*- 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 返回一個(gè)列表,以空格作為元素拆分標(biāo)識
  #print line 返回的是一整行數(shù)據(jù),相當(dāng)于一個(gè)字符串元素
  count = len(eachline)#返回列表長度,即列表元素?cái)?shù)目
  n = 0
  element = []#初始化空列表用于存儲所需評分?jǐn)?shù)據(jù)
  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] #概率數(shù)值列表
  
  if element[1] >= '0.7':
   element.append(1)
   #print '1'
  else:
   element.append(0)
   #print '0'
   
  #生成每行末尾有\(zhòng)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()讀取文本生成矩陣數(shù)據(jù)
  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()

以上這篇Python 文本文件內(nèi)容批量抽取實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI