使用格式: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)