Python提取HM编码结果的批处理
2017-11-03 11:28
176 查看
import re import string import os f_out = open('/Users/mengwang/Downloads/HM-16.0/BDrate.txt', 'w+') def searchResult(chunk, matchSyntax, index): if re.search(matchSyntax, chunk): splitWord = re.split(r'\s+', chunk) #print chunk #print splitWord[3] matchWord = [] matchWord.append(splitWord[index]) return matchWord def writeResult(result): f_out.write("%-20s"%(result[0])) f_out.write("%-10s"%(result[1])) f_out.write("%-10s"%(result[2])) f_out.write("%-10s"%(result[3])) f_out.write("%-10s"%(result[4])) f_out.write("\n") rootdir = '/Users/mengwang/Downloads/HM-16.0/encResult' list = os.listdir(rootdir) for i in range(0,len(list)): pathDir = os.path.join(rootdir,list[i]) if os.path.isfile(pathDir): f = open(pathDir, 'r') while 1: chunk = f.readline() if chunk == '': break matchWord = 'SUMMARY' findResult = searchResult(chunk, matchWord, 0) if findResult: chunk1 = f.readline() chunk2 = f.readline() splitEncResult = re.split(r'\s+', chunk2) print chunk2 print pathDir BDRATE = [] BDRATE.append(splitEncResult[3]) BDRATE.append(splitEncResult[4]) BDRATE.append(splitEncResult[5]) BDRATE.append(splitEncResult[6]) BDRATE.append(pathDir) writeResult(BDRATE)
HM的report格式和AVS不一样,AVS可以直接定位到关键字然后做完分割就可以取到想要的数据,但是HM的关键字应该是summary那一行,对应的结果再summer的下下行,像这样。
SUMMARY --------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
5 a 12700.6080 41.4903 43.6672 44.2743 42.1685
I Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
5 i 12700.6080 41.4903 43.6672 44.2743 42.1685
P Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 p nan nan nan nan nan
B Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 b nan nan nan nan nan
RVM: 0.000
Bytes written to file: 132329 (12703.584 kbps)
Total Time: 4.734 sec
对于python的格式化输出一直不太熟:
%-10s代表输出数据左对齐,右边添加占位符
%10s代表输出数据右对齐,左边添加占位符
所以采用左对齐的形式,当数据位数比较多的时候,当前输出应该留出足够多的占位符。
相关文章推荐
- 【Python】批量查询-提取站长之家IP批量查询的结果v1.0
- Python实现提取谷歌音乐搜索结果的方法
- 基于Python正则表达式提取搜索结果中的站点地址
- 巧用python和libnmapd,提取Nmap扫描结果
- 基于Python正则表达式提取搜索结果中的站点地址
- 收藏一个python通过uft8 编码来提取中文的例子
- 巧用python和libnmapd,提取Nmap扫描结果
- Python实现提取谷歌音乐搜索结果的方法
- python爬虫结果写入html时编码错误
- python 批处理excel文件实现数据的提取
- 巧用python和libnmapd,一行代码提取Nmap扫描结果
- Python读取UTF-8编码文件并使用命令行执行时输出结果的问题
- 【Python】批量查询-提取站长之家IP批量查询的结果加强版本v3.0
- python3爬取百度搜索结果url,获得真实url,提取网页正文并分词,多进程的使用
- 【Python】批量查询-提取站长之家IP批量查询的结果加强版本v2.0
- 基于python 的分类算法模板 -- 数据库索引、特征提取、分类、分类结果查看
- Python提取cuckoo运行结果到新目录中
- python实现提取百度搜索结果的方法
- 我用python将结果写入txt文件出现的编码问题及其解决方法