python linecache 处理固定格式文本数据的方法

yipeiwu_com5年前Python基础

小程序大功能

对一批报文要处理要处理里面的得分,发现python linecache ,特记录如下。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
''''提取result结果分值'''
 
import linecache
import os
import os.path
 
rootdir = r"./815old/"
 
for parent, dirnames, filenames in os.walk(rootdir): # 三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
  for filename in filenames: # 输出文件信息
    files = os.path.join(parent, filename) # 输出文件路径信息
    count = len(open(files, 'r').readlines()) # 行数
    str = linecache.getlines(files) # 所有文件的字符串
    filename = str[2] #第三行
    if count > 6: # 行数大于5行表示命中
      matchRatio = str[8] #第九行
      print filename[58:-2], " ", matchRatio[15:], "\r"
    else: # 没有命中 matchRatio 赋值0
      print filename[58:-2], " ", '0', "\r"

文本格式如下:

results {
 fileID: "386e86d2e3991de32a028b7e26e58ffd"
 filename: "/opt/vfpgen/video_file/192.168.142.199/video/Avatar.2009.iTALiAN.READNFO.LD.TS.XviD-SiLENT.CD1[S.o.M.].avi"
 filetype: 1
 vfpQueryResults {
  fileID: "09b509f6c625aeb525f6f1c8e09725d6"
  filename: "/opt/SmartVision/system/copyrightfpdb//dbfp/09b509f6c625aeb525f6f1c8e09725d6.DB.cdvs"
  matchScore: 0.85874754
  matchRatio: 0.53333336
  dbID: "copyright_library_db"
  startframe: 16210
  endframe: 97240
 }
}

以上这篇python linecache 处理固定格式文本数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 定义给定初值或长度的list方法

python 定义给定初值或长度的list方法

1. 给定初值v,和长度l,定义list s 或者: 2. 产生一个数值递增list 2.1 从0开始以1递增 2.2 在[a,b)区间上以1递增 2.3 在[a,b)区间上以c...

Python验证文件是否可读写代码分享

本文分享实例代码主要在实现验证文件是否有读写权限问题,具体如下: # Import python libs import os def is_writeable(path, chec...

pandas的object对象转时间对象的方法

如下所示: df = pd.read_table('G:/tc/dataset/user_view.txt', sep=",")#读取文件 df.columns = ["a", "b...

python 和c++实现旋转矩阵到欧拉角的变换方式

python 和c++实现旋转矩阵到欧拉角的变换方式

在摄影测量学科中,国际摄影测量遵循OPK系统,即是xyz转角系统,而工业中往往使用zyx转角系统。 旋转矩阵的意义:描述相对地面的旋转情况,yaw-pitch-roll对应zyx对应k,...

使用EduBlock轻松学习Python编程

使用EduBlock轻松学习Python编程

如果你正在寻找一种方法将你的学生(或你自己)从使用 Scratch 编程转移到学习 Python,我建议你了解一下 EduBlocks。它为 Py...