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 |