내가만든/라인들2016. 2. 28. 17:11

Python V3.5

카카오톡 대화 욕설 집계 V1.0.0

카카오톡 대화내용을 내보내기 한 뒤, 나온 파일을 통해 욕 횟수를 집계해 준다.

#read.py

import string

#def ExportText()
def ExportText(append):
 f = open("C:\\PythonStudy\\ChatData\\Parsing_Chat.csv", 'a') 
 f.write(append)
 f.close()
 
#def ReadText()
def ReadText( MalWord ):
 
 # 대화 목록 읽어 오기
 f = open("C:\\PythonStudy\\ChatData\\KakaoTalkChats.txt", 'r') 
 Curline = f.readline()
 
 #While Loop1========================================================
 while Curline:
  line = Curline
  NextLine = f.readline()
  
 #While Loop2--------------------------------------------------------
  while NextLine:
   if 1 >= len(NextLine) : # 줄바꿈만 있는 공백
    line = NextLine
    NextLine = f.readline()
   
   if '2' == NextLine[0] and '년' == NextLine[4] : # 기본 채팅 라인
    break
   
   line = line.split('\n')[0]
   line += NextLine   
   NextLine = f.readline()
 #-------------------------------------------------------- 
  
 #========================================================
  for FilterWord in MalWord: # 필터 단어 수 만큼 검사 하기 때문에, 중복 여부를 설정해야 한다.
   nRet = line.find(FilterWord)
   if -1 == nRet: 
    continue
    
   split_SemiColumn = line.split(' : ')
   if 2 > len(split_SemiColumn):
    continue
   
   try: # 콜론(:)으로 파싱 시도
    split_Comma = split_SemiColumn[0].split(',')
    
   except: # 예외 사항 발생시 넘어감
    continue
           
   if 10 < len(split_Comma[1]): #이름 파싱
    continue
       
   #시간 + 이름 + 내용
   strLine = split_Comma[0]
   strLine += "," +split_Comma[1]
   strLine += "," +FilterWord
   strLine += "," +split_SemiColumn[1]
   ExportText( strLine )
   break # break 가 있으면 중복 제거, 없으면 중복 허용
   
  Curline = NextLine
  
 f.close()
 
#def ReadMalWord()
def ReadMalWord():
 f = open("C:\\PythonStudy\\MalWord\\MalWord.txt", 'r')
 line = f.read().splitlines()
 Container = []
 
 for MalWord in line:
  Container.append(MalWord)
    
 f.close()
 
 return Container

#main

WordContainer = ReadMalWord() # 필터링 단어 리스트

ReadText(WordContainer) # 대화 목록 읽어오기

 

파이썬은 기본 코딩 문법과는 다른 양상이어서 이해가 조금 힘들었다.

탭한번만 잘못써도 Scope가 바뀌어 버리는 상황이 발생! 주의해야 한다(적절한 코드 편집기 사용이 필 수 인 것 같다. 난 NotePad++ 써서 어려웠음)

사용하려면 필터링 대상 단어를 입력 해야하는데, 저작권 무제로 배포 못합니다(__)

프로그램 사용해보고 싶으시면, 실행파일로 만들어 드립니다 :)

(사용예시)

 

 

스크립트를 통해 집계된 욕 획수를 엑셀로 정리하여 표나 차트로 제공하면 더욱 좋다 ㅋㅋ :)

 

 

'내가만든 > 라인들' 카테고리의 다른 글

스케쥴링_파일  (0) 2016.03.02
[로그분할기] 텍스트 용량별 분할기  (0) 2016.02.28
[이벤트] 크리스마스 트리  (0) 2016.02.28
[메모리풀] 헤더 파일  (0) 2016.02.28
[채팅] 클라이언트 코드  (0) 2016.02.28
Posted by 비엔나햄