师傅给了一个perl文件处理res文件,让我转换成python文件处理,对于res文件,我不知道怎么用python读取,想要实现每一组数对应一个波形,对有大于0.5的大于6个点大于1的有3个点的波形并且波形后有bath路径的记一个,最后记总数,,#!/usr/bin/python
#_*_coding:UTF-8_*_
#if argv != 5 :
#return
#($INPUT,$THRES_PEAK,$SMOOTH_WIN,$peak) = @ARGV;
def argv(self):
(INPUT,THRES_PEAK,peak,THRES,SMOOTH_WIN)= argv
file_object = open('US_HI_BIX_PC_TC_CarDowntown_5dB.res',r)
try :
f = file_object.read( )
THRES = 4.5
total = 0
recall = 0
work = 0
on_off = 0
count_down=0
count_down_path=0
line= file_object.readline()
line=line.strip('\n')
while line :
total+=1
#print "$content\n";
if count_down > 0 :
count_down+=1
if count_down_path > 0 :
count_down_path-=1
as="bt_"
if as in line :
if count_down > 0 :
recall+=1
count_down=0
#print "=================================$total\n";
count_down_path = 15
else :
val = line.split()
inv_score = val[0]
def inv_score
in_score = inv_score
if in_score >= THRES & on_off == 0 :
work = 1
if in_score >= THRES_PEAK :
pcount = 1
else :
pcount = 0
st = st_time
on_off = 1
elif in_score >= THRES && on_off == 1 :
work+=1
if in_score >= THRES_PEAK :
pcount+=1
elif in_score < THRES && on_off == 1 :
ed = last_ed
if work >= SMOOTH_WIN && pcount >= peak && count_down_path > 0 :
recall+=1
# print "===============================$total\n";
count_down_path = 0
elif work >= SMOOTH_WIN & pcount >= peak :
#$recall+=1
count_down=7
print OUT "$total\t"
print OUT "$pcount\n"
work = 0
on_off = 0
last_st = st_time
last_ed = ed_time
if work >= SMOOTH_WIN & pcount >= peak :
recall+=1
print "recall\n"
finally:
if f:
f.close()
我根据他的改的,但是感觉好像哪里都不对,,作为新手小白,知道很令人无语,所以求大神们帮帮忙。