273
5
장
응용 작업
을 파싱하고, 데이터의 특정 부분을 앞서 만든 리스트와 딕셔너리에 넣는다.
12
행에서
split
()
함수를 사용하여 단일 공백문자 (최대
4
개)로 행을 나눠
5
개로 분할된 문자
열을
row
_
list
에 할당한다. 개수를 제한한 것은 각 행이 날짜, 시간, 번호,
[
Note
]
, 로그 메시
지 순으로 공백문자로 구분되기 때문이다. 즉 처음
4
개는 공백문자는 구분하고, 로그 메시지에
포함된 공백문자는 무시하여 로그 메시지 전체를 그대로 살리기 위해서다.
13
행에서
row
_
list
의 첫 번째 원소(날짜)의 양쪽 끝에서 공백문자, 탭, 개행문자를 제거하고
이 값을
day
변수에 할당한다.
14
행에서
row
_
list
의 다섯 번째 원소(로그 메시지 )의 양쪽 끝에서 공백문자, 탭, 개행문자를
제거하고 이 값을
note
변수에 할당한다.
15
행에서
if
문으로
note
변수의 로그 메시지가
notes
리스트에 포함되지 않았는지 검사한다.
포함되어 있지 않다면
16
행에서
append
()
함수로 이 로그 메시지를 리스트에 추가한다. 이렇
게 함으로써 입력 파일에 들어 있는 로그 메시지의 고유한 목록을 만들 수 있다.
17
행에서
if
문으로
day
변수에 든 날짜가
messages
딕셔너리의 키로 포함되지 않았는지 검사
한다. 포함되어 있지 않다면
18
행에서
messages
딕셔너리의 키로 이 날짜를 추가하고 이에 해
당하는 값으로 빈 딕셔너리를 만든다.
19
행에서
if
문으로
note
변수의 로그 메시지가 특정 날짜에 해당하는 내부 딕셔너리의 ...