使用格式:python program_name file/dir

用于分析给定的文件或者文件夹,将需要的数据包括到一个文件中

  1 #!/usr/bin/env python
  2 #_*_ coding:utf-8 _*_
  3 # Power by zdq2019-03-27 08:02:24
  4 
  5 import string
  6 import sys
  7 import os
  8 #win_flag = 0
  9 #win_line = 0
 10 #min_line = 0
 11 #count_line = 0
 12 #speed_line = 0
 13 #gear_line = 0
 14 #pre_win_line = 0
 15 #pre_min_line = 0
 16 #pre_count_line = 0
 17 #pre_speed_line = 0
 18 #pre_gear_line = 0
 19 #line_n = 0
 20 #min_start_result = 0
 21 #count_start_result = 0
 22 #speed_start_result = 0
 23 #gear_start_result = 0
 24 input_file_name = sys.argv[1]
 25 
 26 
 27 
 28 def get_dist_result(input_file_name):
 29     win_flag = 0
 30     win_line = 0
 31     min_line = 0
 32     count_line = 0
 33     speed_line = 0
 34     gear_line = 0
 35     pre_win_line = 0
 36     pre_min_line = 0
 37     pre_count_line = 0
 38     pre_speed_line = 0
 39     pre_gear_line = 0
 40     line_n = 0
 41     min_start_result = 0
 42     count_start_result = 0
 43     speed_start_result = 0
 44     gear_start_result = 0
 45     global f_out
 46 #    with open(input_file_name,"r") as f_in, open("sug-out.log","w") as f_out:
 47     with open(input_file_name,"r") as f_in:
 48 #        f_out.write('gear s_dist   e_dist   time   speed    delta_dist\r\n' )
 49         line =  f_in.readline()
 50         while line:
 51             line =  f_in.readline()
 52             if 'win:0' in line:
 53                 win_flag = 0;
 54             if 'win:1' in line and win_flag == 0:
 55                 win_flag = 1;
 56                 line_n = f_in.readline()
 57                 while line_n:
 58                     line_n = f_in.readline()
 59                     if "min_dist:" in line_n:
 60                         min_line = line_n
 61                     if "count:" in line_n:
 62                         count_line = line_n
 63                     if "vehicle_speed:" in line_n:
 64                         speed_line = line_n
 65                     if "vehicle_speed:0.091" in line_n:
 66                         win_flag = 2
 67                         break;
 68                     if "gear:" in line_n:
 69                         gear_line = line_n
 70 
 71                         min_temp = min_line.split(':',1)[1]
 72                         min_start_result = min_temp.split(',',2)[0]
 73 
 74                         count_start_result = (count_line.split(':',1)[1]).strip('\r\n')
 75 
 76                         speed_start_result = (speed_line.split(':',1)[1]).strip('\r\n')
 77 
 78                         gear_start_result = (gear_line.split(':',1)[1]).strip('\r\n')
 79                         break
 80             if win_flag == 1:
 81                 if "win:" in line:
 82                     pre_win_lin = win_line
 83                     win_line = line
 84                 if "min_dist:" in line:
 85                     pre_min_line = min_line
 86                     min_line = line
 87                 if "count:" in line:
 88                     pre_count_line = count_line
 89                     count_line = line
 90                 if "vehicle_speed:" in line:
 91                     pre_speed_line = speed_line
 92                     speed_line = line
 93                 if "gear:" in line:
 94                     pre_gear_line = gear_line
 95                     gear_line = line
 96                 if "vehicle_speed:0.091" in line and "win:1" in win_line:
 97                     min_temp = min_line.split(':',1)[1]
 98                     min_end_result = min_temp.split(',',2)[0]
 99 
100                     count_end_result = (count_line.split(':',1)[1]).rstrip('\r\n')
101 
102                     speed_end_result = (speed_line.split(':',1)[1]).rstrip('\r\n')
103 
104                     gear_end_result = (gear_line.split(':',1)[1]).rstrip('\r\n')
105 
106                     time_brake = (string.atoi(count_end_result) - string.atoi(count_start_result)+1)*20
107                     dist_brake = (string.atof(min_start_result) - string.atof(min_end_result))*100
108 
109                     time_brake_result = str(time_brake)
110                     dist_brake_result = str(dist_brake)
111 
112                     f_out.write(gear_start_result)
113                     f_out.write('    ')
114                     f_out.write(min_start_result)
115                     f_out.write('    ')
116                     f_out.write(min_end_result)
117                     f_out.write('    ')
118                     f_out.write(time_brake_result)
119                     f_out.write('    ')
120                     f_out.write(speed_start_result)
121                     f_out.write('    ')
122                     f_out.write(dist_brake_result)
123                     f_out.write('\r\n')
124                     win_flag = 0
125                 elif "vehicle_speed:0.091" in line and "win:0" in win_line:
126                     min_temp = pre_min_line.split(':',1)[1]
127                     min_end_result = min_temp.split(',',2)[0]
128 
129                     count_end_result = (pre_count_line.split(':',1)[1]).rstrip('\r\n')
130 
131                     speed_end_result = (pre_speed_line.split(':',1)[1]).rstrip('\r\n')
132 
133                     gear_end_result = (pre_gear_line.split(':',1)[1]).rstrip('\r\n')
134 
135                     time_brake = (string.atoi(count_end_result) - string.atoi(count_start_result)+1)*20
136                     dist_brake = (string.atof(min_end_result) - string.atof(min_start_result))*100
137 
138                     time_brake_result = str(time_brake)
139                     dist_brake_result = str(dist_brake)
140 
141                     f_out.write(gear_start_result)
142                     f_out.write('    ')
143                     f_out.write(min_start_result)
144                     f_out.write('    ')
145                     f_out.write(min_end_result)
146                     f_out.write('    ')
147                     f_out.write(time_brake_result)
148                     f_out.write('    ')
149                     f_out.write(speed_start_result)
150                     f_out.write('    ')
151                     f_out.write(dist_brake_result)
152                     f_out.write('\r\n')
153                     win_flag = 0
154 
155 
156 
157 with open("sug-out.log","a") as f_out:
158     f_out.write('gear s_dist   e_dist   time   speed    delta_dist\r\n' )
159     if '/' in input_file_name:
160         for root, dirs, infiles in os.walk(input_file_name):
161             for name in infiles:
162 #                filename = "".join(name)
163                 pathfilename = os.path.join(root,name)
164                 get_dist_result(pathfilename)
165     else:
166         get_dist_result(input_file_name)