본문으로 바로가기
파이썬 정규식으로 데이터에서 특정 패턴 추출하기

import re

pattern = re.compile(" - ")
result = pattern.sub( "*","hello - aoeu")

print(result)

" - "를 "*"로 바꿔준다.



로그를 분석 할 때 로그에 여러개의 로그가 쌓여서 내가 필요한것만 보고 싶을 때 로그가 35메가라면 눈으로 보기는 힘들다
그래서 이 코드를 만들었다.


일단 re를 import해줘야 함.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import re
fileLocation = "C:/Users/kyeongrok.kim/Desktop/"
fileName = "parse_2017-06-05.23.log"
targetFileName = "helllo.txt"
pattern = '.*1703427.*'
 
class LogParser:
    def extractPattern(self, sFileLocation="C:/Users/kyeongrok.kim/Desktop/", sTargetFileName = "hello.txt", sPattern = "1234"):
        with open(sFileLocation + fileName, mode="rt", encoding='utf-8') as f:
            string = f.read()
 
        pattern = re.compile(sPattern)
        findAll = pattern.findall(string)
 
        for item in findAll:
            with open(sFileLocation + sTargetFileName, mode="w+", encoding='utf-8') as f:
                f.write(item)
 
        print("success")
 
 
parser = LogParser()
parser.extractPattern(fileLocation, targetFileName, pattern)
cs


위 코드를 사용하면 from파일에서 특정 패턴을 추출해서 targetFile로 추출한 패턴의 데이터만 뽑아낼 수 있다.


end.




댓글을 달아 주세요

  1. 빅맨 2018.07.30 02:34 신고

    parse_2017-06-05.23.log 이 파일은 어디에 있나요?