본문 바로가기

반응형

언어/Python

(142)
[ Python ] struct 패키지로 바이너리 데이터 다루기 struct 패키지는 Python에서 바이너리 데이터를 다루기 위해 사용되는 모듈로, C 언어나 기타 저수준 언어에서 흔히 사용하는 구조체(structure)와 비슷한 방식으로 데이터를 해석하거나 생성할 수 있게 해줍니다. 이 모듈은 데이터의 포맷을 지정하고, 이를 바탕으로 바이트(byte) 데이터로 변환하거나 바이트 데이터를 언패킹(unpacking)하여 원하는 타입으로 변환하는 기능을 제공합니다.주요 기능패킹(Packing): 파이썬의 기본 자료형들을 바이너리 데이터로 변환합니다.언패킹(Unpacking): 바이너리 데이터를 파이썬의 기본 자료형으로 변환합니다.struct 모듈의 주요 함수들struct.pack(format, v1, v2, ...): 주어진 포맷(format) 문자열에 따라 값을 패킹..
[ Python ] 파일 읽고 쓰기 함수 설명과 예제 Python에서 파일을 다룰 때 자주 사용하는 함수와 메서드에 대해 설명하고, 각각의 예제를 제공합니다. 파일 작업은 입출력(IO) 작업의 기본적인 부분이며, 이를 이해하고 활용하는 것이 중요합니다.1. open()설명: 파일을 열기 위해 사용하는 함수입니다. 파일을 읽기 모드, 쓰기 모드 등 다양한 모드로 열 수 있습니다.문법:open(filename, mode)filename: 열 파일의 이름(경로 포함).mode: 파일을 여는 모드. 기본값은 'r'(읽기 모드)입니다.모드:'r': 읽기 모드(파일이 없으면 오류 발생).'w': 쓰기 모드(파일이 없으면 새로 생성, 있으면 덮어씀).'a': 추가 모드(파일이 없으면 새로 생성, 있으면 끝에 추가).'b': 바이너리 모드(텍스트 모드가 아닌 바이너리 모..
[ Python ] with로 파일 자원 관리 하면서 파일 읽기 with 키워드는 Python에서 특정 작업을 할 때, 코드 블록의 시작과 끝을 명시적으로 나타내어 자원을 관리하고 에러 처리하는 데 유용하게 사용됩니다. 주로 파일 작업이나 데이터베이스 연결 같은 자원의 할당과 해제를 자동으로 처리할 때 사용됩니다.기본 구조with 키워드의 기본 구조는 다음과 같습니다:with 표현식 as 변수: 코드 블록표현식: 자원을 할당하는 표현식, 예를 들어 파일을 여는 함수.변수: 표현식의 결과를 담을 변수.코드 블록: 자원을 사용하여 수행할 작업을 작성하는 부분.예제: 파일 처리파일을 열고 작업한 후, 파일을 자동으로 닫아주는 간단한 예제입니다.# 파일에 내용 쓰기with open('example.txt', 'w') as file: file.write('Hello..
[ Python ] re.Scanner를 이용해서 RPN 계산기 만들기 1. RPN (Reverse Polish Notation, 역 폴란드 표기법)개요RPN은 수식 표기법의 일종으로, 연산자를 피연산자 뒤에 위치시키는 표기법입니다. 일반적인 수식(중위 표기법)과 달리, 괄호 없이도 수식을 명확히 표현할 수 있어 계산기가 연산을 수행할 때 유용합니다.예시중위 표기법: 3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3RPN 표기법: 3 4 2 * 1 5 - 2 3 ^ ^ / +RPN에서 계산은 스택을 사용해 이루어집니다. 연산자를 만나면 스택에서 필요한 수만큼의 피연산자를 꺼내 계산하고, 결과를 다시 스택에 넣습니다.RPN 계산기 구현 예제def rpn_calculator(expression): stack = [] for token in expression.sp..
[ Python ] re.split() 사용하기 [python] re.split은 정규 표현식을 사용하여 문자열을 특정 패턴에 따라 분할하는 Python의 re 모듈에서 제공하는 함수입니다. 이 함수는 문자열을 정규 표현식의 패턴을 기준으로 분할하여 리스트로 반환합니다.1. 사용법import reresult = re.split(pattern, string, maxsplit=0, flags=0)pattern: 분할할 기준이 되는 정규 표현식 패턴.string: 분할할 대상 문자열.maxsplit: 분할할 최대 횟수 (기본값은 0으로, 무제한으로 분할함).flags: 정규 표현식에 대한 추가 옵션 (예: re.IGNORECASE 등).2. 예제예제 1: 공백을 기준으로 문자열 분할import retext = "Hello, how are you today?..
[ Python ] 정규식에서 패턴 매칭 후 인덱스로 결과에 접근하기 re.match() 함수는 패턴이 문자열의 시작 부분과 일치하는지 확인할 때 사용됩니다. 이 함수는 re.Match 객체를 반환하며, 이 객체를 통해 매치된 부분과 캡처된 그룹에 접근할 수 있습니다. 이 때, 캡처된 그룹에 접근하려면 group() 메서드를 사용하며, 이 메서드의 인덱스를 통해 특정 그룹의 값을 숫자로 접근할 수 있습니다.re.match()의 사용 방법import re# 패턴 정의 (정규 표현식)pattern = r"(\d{3})-(\d{2})-(\d{4})"# 문자열text = "123-45-6789"# 패턴 매칭match = re.match(pattern, text)if match: # 매칭된 전체 문자열 print(match.group(0)) # '123-45-6789'..
[ Python ] 정규표현식에서 부정적 전방 탐색 사용하기 부정 전방 탐색(Negative Lookahead)은 정규 표현식에서 특정 패턴이 뒤따르지 않는 경우에만 매칭을 허용하는 기능입니다. 부정 전방 탐색의 구문은 (?!...) 또는 (?!=...)입니다. 이 기능을 사용하면 특정 조건을 만족하지 않는 패턴을 매칭할 수 있습니다.1. 부정 전방 탐색의 사용법부정 전방 탐색을 사용하면 특정 패턴이 문자열 뒤에 오지 않는 경우에만 매칭이 가능합니다. 이 패턴은 실제 매칭에 포함되지 않으므로 패턴 자체는 소비되지 않습니다.2. 예제다음 예제는 부정 전방 탐색을 사용하여 "apple"이 뒤따르지 않는 단어를 찾는 방법을 보여줍니다.import retext = "I have an apple pie and a banana split. I also have a cherr..
[ Python ] 정규표현식에서 다중 패턴으로 전방 탐색하기 파이썬 정규표현식에서 전방 탐색 기능을 사용하여 다중 패턴을 검색할 수 있습니다. 이를 통해 여러 조건을 동시에 만족하는 문자열을 찾을 수 있습니다. 전방 탐색을 여러 번 사용하면 다중 조건을 적용할 수 있습니다.1. 예제다음 예제는 전방 탐색을 사용하여 문자열에서 "apple" 또는 "banana"가 뒤따르는 단어를 찾는 방법을 보여줍니다.import retext = "I have an apple pie and a banana split. I also have a cherry tart."# 긍정 전방 탐색을 사용한 다중 패턴 검색pattern = re.compile(r'\b\w+(?=\s(?:apple|banana))')matches = pattern.findall(text)print("Matches ..

반응형