9장 연습 문제 8번, 9번

Weblog라는 파일이 있는데, 그 파일의 ip와 접근 페이지, 접근 시간을 추가하는 함수를 구성하라는 문제이다.

기록하는 형식은 ip:접근페이지:접근 시간 으로 기록하라고 했다.
>>> def add_info(ip, access_page, access_time)
    f = open('Weblog.txt', 'a')
    f.write(':'.join([ip, access_page, access_time])
위와 같이 코딩을 하면 간단하게 정보를 추가할 수 있다.


9번 문제는 이 파일을 분석해서 어떤 ip에서 어떤 페이지에 몇 번이나 접근 했는지를 출력하는 문제이다.

ip 가 중복될 수도 있고, 또 그 ip 가 접근한 페이지가 다르거나 중복될 수도 있다. 그러나 ip 와 접근한 페이지가 모두 일치하는 경우에만 두 번 이상으로 체크하므로 사전을 이용해서 ip:접근 페이지 를 키로 하고 접근 횟수를 값으로 하는 사전을 만들었다.
>>> f = open('Weblog.txt')
>>> d = {}
>>> for line in f :
    key = line.rsplit(':', 1)[0]
    d[key] = d.setdefault(key, 0) + 1
    for key in d :
        ip, access_page = key.split(':')
        print ip + '에서' + access_page + '에' + `d[key]` + '번 접근'

댓글 없음:

댓글 쓰기