python檔案資料操作

2021-07-01 22:37:25 字數 1775 閱讀 5172

#coding=utf-8

import re

import sys

import struct

import array

import numpy as np

define=8000*3

if __name__ =='__main__':

sourcefilename=r'c:\users\sophie\desktop\allfea_basedon_2194_localconv3_normalized.txt'

sourcefile=open(sourcefilename,'r')

feature =

person_feat = {}

print "start"

for i, line in enumerate(sourcefile.readlines()):

if i % 8000 == 0 :

#if i % 8000 == 0 and i != 0:

person_feat = {}

if i>=define:

break

l=line.strip('\n')

k=l.split(' ')

person_num=k[0]

#tmp = np.array([float(x) for x in k[1:]]) # 一行的資料

tmp=np.array(k[1:])

if person_num not in person_feat:

person_feat[person_num] =

#寫入準備

sample= #每個人對應的樣本個數

number=0 #for test 總人數

print "start write"

#print feature

for feat in feature:

pernum=len(feat)

number+=pernum

for (nump,pfeat) in feat.items():

tmplen=len(pfeat)

print tmplen

featurelen=256

outfilename=r'outfile.txt'

outfile=open(outfilename,'wb')

outfile.write(struct.pack("ii",featurelen,number))

for ii in range(len(sample)):

outfile.write(struct.pack('i',sample[ii]))

for feat in feature:

for (nump,pfeat) in feat.items():

for jj in range(len(pfeat)):

pfeat[jj].tofile(outfile)

背景:人臉識別專案中,提取出了很多資料,需要提取合適的資料供人臉識別用。

人臉識別中,需要乙個二進位制檔案,格式是:特徵長度,總共人數,每個人對應的樣本數,相應的特徵

特徵長度是256,總共人數和樣本數需要計算,特徵是float型別的資料。

現在的檔案格式是:

每8000行是一部電視劇集的人臉特徵,一共有10多部電視劇集。

檔案每一行有257維資料,第一維是標示不同的人,剩下的都是特徵。

這裡巧妙的用到了python中的字典,和numpy陣列。

其實這裡面是有漏洞的,下次再說。



Java基礎 檔案資料IO操作

檔案資料io操作 1.1.字元流原理 reader是所有字元輸入流的父類而writer是所有字元輸出流的父類。字元流是以字元 char 為單位讀寫資料的。一次處理乙個unicode。字元流都是高階流,其底層都是依靠位元組流進行讀寫資料的,所以底層仍然是基於位元組讀寫資料的。1.2.常用方法 read...

python讀取各種檔案資料解析

1.讀取文字檔案資料 txt結尾的檔案 或日誌檔案 log結尾的檔案 以下是檔案中的內容,檔名為data.txt 與data.log內容相同 且處理方式相同,呼叫時改個名稱就可以了 以下是python實現 coding gb2312 import json defread txt high file...

檔案資料組織

資料庫的基本概念 二 曾士熊 原文 http www.ascc.sinica.edu.tw nl 83 1009 section3 3.html 劉建文整理 http blog.csdn.net keminlau 本文接第10個卷08期68頁 常見的電腦檔案包括 可執行程式檔案,批處理檔案,文字檔案...