본문 바로가기
반응형

PYTHON72

Python - 특정 문자열(str) 포함 유무(contains) 확인 방법 다른 언어(C#, Java등)을 사용하다 Python으로 전환하면서 가장 헷갈렸던 부분이 문자열 검색 부분이다. 보통 C# 기준으로 str에 .contains를 통해 특정 문자열이 포함 하고 있는지를 확인 할 수 있는데, Python에서는 아래와 같은 방법을 이용할 수 있다, 1. in, not in 조건 구분에 in 키워드를 이용해서 확인할 수 있다. 조건에 맞는 경우 True를 반환한다. str_text = 'abcdf' if 'a' in str_text: #True 반환 print('포함') else: #False 반환 print('미포함') not in은 반대로 포함하지 않는 경우 True를 반환한다. str_text = 'abcdf' if 'a' not in str_text: #True 반환 p.. 2024. 3. 2.
Python - 파이썬 코드 실행 시간 측정 perf_counter, process_time 차이점 파이썬 코드 실행 시간 측정 파이썬 코드를 작성하다 보면 특정 코드가 얼마나 걸리는지 확인하고 싶을 때가 있다. 이때 사용할 수 있는 함수가 time 라이브러리의 perf_counter()와 process_time()이다. perf_counter, process_time 차이점 perf_counter()는 프로그램의 전체 실행 시간을 측정한다. 여기에는 프로그램이 실행되지 않고 대기하는 시간도 포함된다. 반면, process_time()은 프로그램이 실제 프로세싱(처리)된 시간만 측정한다. 아래 예제를 보자. import time def perf_proc(): time.sleep(1) for value in range(1, 5): pass start = time.perf_counter() perf_pro.. 2024. 3. 2.
SQLAlchemy로 MySQL 데이터베이스 연결 및 쿼리하기 SQLAlchemy는 Python에서 데이터베이스를 연결하고 쿼리하는 데 사용할 수 있는 강력한 라이브러리이. MySQL을 포함한 다양한 데이터베이스와 호환된다. 데이터베이스 연결 SQLAlchemy를 사용하여 MySQL 데이터베이스에 연결하려면 먼저 create_engine() 함수를 사용해. 이 함수의 인수에는 데이터베이스 연결 정보가 포함된다. import sqlalchemy as db database_url = "mysql+pymysql://username:password@host:port/database" engine = db.create_engine(database_url) 위 예제에서는 다음과 같은 데이터베이스 연결 정보를 사용한다. 사용자 이름: username 비밀번호: password .. 2024. 3. 2.
Pylint - docstring "Missing function or method docstring" 메시지 Pylint는 파이썬 코드의 품질을 향상시키기 위한 도구로, 코드의 구문 오류, 스타일 오류, 잠재적인 버그 등을 검사한다. 이 중 "Missing function or method docstring" 메시지는 함수나 메서드에 docstring이 없음을 나타난다. docstring이란? docstring은 함수나 클래스, 모듈의 목적, 사용 방법, 반환값 등을 설명하는 주석이다. docstring을 작성하면 코드의 이해도를 높이고, 다른 개발자가 코드를 이해하고 수정하기 쉽게 할 수 있다. docstring의 구조 docstring은 세 부분으로 구성된다. 개요(summary) 함수나 메서드의 목적을 한 문장으로 요약 문서화(documentation 함수나 메서드의 사용 방법, 반환값, 입력값 등을 설명.. 2024. 3. 2.
Sqlachemy - 특정 날짜 하루의 데이터를 가져오기 다음은 SQLAlchemy를 사용하여 특정 날짜 하루의 데이터를 가져오는 코드이다. from sqlalchemy import create_engine from sqlalchemy.orm import Session # 데이터베이스 연결 설정 engine = create_engine("postgresql://user:password@localhost/database") # 세션 생성 session = Session(engine) # 특정 날짜 date = "2024-01-07" # 쿼리 query = session.query(Table).filter(Table.created_at >= date).filter(Table.created_at < date + timedelta(days=1)) # 결과 조회 res.. 2024. 2. 29.
Python - Missing optional dependency 'openpyxl' 해결 Missing optional dependency 'openpyxl' Pandas의 엑셀 읽기의 호환성을 위해서 보통 openpyxl 을 사용한다. openpyxl을 별도로 제공되는 Python용의 엑셀 라이브러리로써, 현재 3.1.2버전까지 나왔으며, Pandas에서 제공하는 기본 엑셀 라이브러리보다 좋은 호환성을 제공하여 많이 이용한다. 위 에러는 Pandas에서 openpyxl를 사용하는데, 해당 라이브러가 없을 때 발생한다. pd.read_excel(file_path, engine='openpyxl') 즉 openpyxl를 이용하고자 한다면, pip를 이용해서 설치하도록 하자. pip install openpyxl 2024. 2. 29.
Python - URL, WebContent Encode / Decode 하기 HTTP 호출을 진행하면, URL을 인코딩하거나 디코딩하는 일을 자주 경험하게 된다. 이때 주의할 점음 문자열을 encode/decode 를 Byte 레벨로하는 것이 아닌 문자열 수준으로 진행해주어야 한다. 즉 전체 문자열이 아닌 일부 UTF-8 로 작성된 문자열만 변환해주면 된다. 이를 효과적으로 해주는 라이브러리가 urllib 의 parse의 quote와 unquote 를 통해 진행할 수 있다. urllib.parse — URL을 구성 요소로 구문 분석 — Python 3.12.2 문서 urllib.parse — Parse URLs into components Source code: Lib/urllib/parse.py This module defines a standard interface to br.. 2024. 2. 29.
Python - Header Content-Disposition의 UTF-8에서 Filename 가져오기 웹을 이용해서 파일을 다운로드하였을때, 파일이름에 대한 정보가 필요한 경우가 있다. 이때 유용하게 사용할 수 있는 헤더 정보가 있는데, 바로 Content-Disposition 이다. Content-Disposition 에는 보통 파일 이름 정보를 함께 보내주는 경우가 있다. 하지만 한글인 경우 UTF-8로 디코딩을 해야 정상적으로 확인이 가능하다. 여러가지로 코드를 테스트해본 결과 unquote를 활용하여 디코딩이 가능하다는 것을 알게 되었는데, 아래 코드를 이용해서 파일 이름정보를 가져올 수 있다. from urllib import parse def get_filename(source_header): fname = re.findall("filename\*=([^;]+)", source_header, .. 2024. 2. 29.
Python - OpenCV(4.5.4) 4051: error: (-215:Assertion failed) !ssize.empty() in function 'resize' OpenCV(4.5.4) 4051: error: (-215:Assertion failed) !ssize.empty() in function 'resize' 이 오류를 해결할 수 있는 방법은 명확하지 않은 상황이라고 할 수 있다. 다만 현재로써는 resize는 다음과 같은 문제를 살펴볼 필요가 있다. 1. 타입이 맞지 않는지 resize 시점에 타입을 지정하는 경우, 데이터 타입을 변경해서 진행해 볼 수 있다. 적정한 data type을 지정해 줘야 하기 때문에, float32, int8등을 시도해 보자. cv2.resize(img.astype('float32'), dsize=(125,125)) 2. 올바른 경로 인지 가장 많은 부분에서 이 부분을 확인하라고 하는데, 올바른 경로인지를 확인하는게 좋다. 3.. 2024. 2. 27.
반응형