2016-09-01 2 views
0

파이썬 코드에서 file.txt에서 FAILED 숫자를 검색하고 싶습니다. 여기 5와 같이 0 이건 아니건 상관없이 FAILED 숫자를 검색해야합니다. 그러면 실패 횟수를 전자 메일로 보낼 수 있습니다. grep을 시도했지만 작동하지 않습니다.파이썬 찾기 로그 파일에 FAILED 숫자 찾기

searchfile = open("file.txt", "r") 
for line in searchfile: 
    if "FAILED" in line: print line 
searchfile.close() 


      Total Copied Skipped Mismatch FAILED Extras 
Dirs :  2575   0  2575   0   5   0 
Files :  6039   0  6039   0   0   0 
Bytes : 1.547 g   0 1.547 g   0   0   0 
Times : 0:00:53 0:00:00      0:00:00 0:00:53 


    Ended : Tue Aug 30 04:32:48 2016 

답변

0

실패한 컬럼의 위치를 ​​찾아 관심있는 행에서, 그 위치에있는 값을 볼 수 있습니다 :

result = {} 
col = 'FAILED' 
col_index = None 
row_names = {'Dirs', 'Files'} 

for l in open('file.txt').readlines(): 
    if col_index is None: 
     if col in l: 
      col_index = l.find(col) 
    else: 
     l_split = l.split() 
     if len(l_split) > 0 and l_split[0] in row_names: 
      result[l_split[0]] = int(l[col_index:col_index+len(col)]) 
print(result) 
+0

미카엘은 약간의 시간이 당신이 경우에, 저에게의 논리를 알려주세요 위의 코드. 그 위대한 일. – Ajsh

+0

'Dirs'와 'Files'의 값을 어디에 저장하고 있는지 알고 싶었습니다. – Ajsh

+0

값은이 줄에 읽혀 저장됩니다.'result [l.split() [0]] = int (l [col_index : col_index + len (col)]))'. 그것은 "col_index"에서 시작하여'col_index + len (col)'에서 끝나는 "FAILED"열의 문자를 읽습니다. –