SeouliteLab

파이썬 문법 분석 라이브러리, pyparsing 소개와 활용 방법 본문

카테고리 없음

파이썬 문법 분석 라이브러리, pyparsing 소개와 활용 방법

Seoulite Lab 2024. 4. 18. 08:23

pyparsing은 파이썬에서 문자열을 구문 분석하고 처리하는 데 사용되는 강력한 라이브러리입니다. 이 라이브러리를 사용하면 사용자 지정 문법을 정의하고 해당 문법에 맞게 문자열을 구문 분석할 수 있습니다. 아래에서는 pyparsing 라이브러리의 간단한 예제와 활용 방법에 대해 살펴보겠습니다.

예제 1: 간단한 숫자 계산기 만들기

from pyparsing import *

# 문법 정의
integer = Word(nums).setParseAction(lambda t: int(t[0]))
operand = oneOf("+ - * /")
expression = Forward()
expression << integer + ZeroOrMore(operand + expression)

# 문자열 파싱
result = expression.parseString("3 + 5 * 2 - 8 / 4")
print("계산 결과:", eval("".join(result)))

이 예제에서는 pyparsing을 사용하여 간단한 숫자 계산기를 만듭니다. 정의한 문법을 사용하여 문자열을 파싱하고, 계산 결과를 출력합니다.

예제 2: CSV 파일 파싱하기

from pyparsing import *

# CSV 문법 정의
field = QuotedString('"', escChar='\\') | Word(printables, excludeChars=',')
csv_line = delimitedList(field, ',')

# CSV 파일 읽기
with open('example.csv', 'r') as file:
    for line in file:
        parsed_data = csv_line.parseString(line)
        print(parsed_data)

이 예제는 pyparsing을 사용하여 CSV 파일을 파싱하는 방법을 보여줍니다. 정의한 CSV 문법을 사용하여 각 라인을 파싱하고 파싱된 데이터를 출력합니다.

예제 3: 간단한 논리식 파싱하기

from pyparsing import *

# 논리식 문법 정의
operand = oneOf("true false")
operator = oneOf("and or not")
expression = operator | operand + ZeroOrMore(operator + operand)

# 논리식 파싱
parsed_expr = expression.parseString("true and false or not true")
print(parsed_expr)

이 예제는 pyparsing을 사용하여 간단한 논리식을 파싱하는 방법을 보여줍니다. 정의한 논리식 문법을 사용하여 문자열을 파싱하고 파싱된 결과를 출력합니다.

pyparsing은 다양한 분야에서 유용하게 사용될 수 있는 강력한 라이브러리입니다. 사용자 정의 문법을 구현하고 해당 문법에 맞게 문자열을 파싱하는 데 활용됩니다.