- 0) 정규식
- 알파뱃 대소 구분없이 정규식으로 찾아서 조지기
- https://zephyrus1111.tistory.com/302
-
word_list = [ 'apple', 'banana', 'cherry', '...', ] sentence = "I am CheRRy! 하하하 호호호 1234567890" for word in word_list: if word in sentence.lower(): pattern = re.compile(word, re.IGNORECASE) match = re.search(pattern, sentence) match_group = match.group() if match is not None else None sentence = sentence.replace(match_group, f"<color=#FF0000>{match_group}</mark>", 1) break ...
- 태그 사이값 찾기
- output = re.findall(r"<태크>(.*?)</태크>", input, re.DOTALL)
- 알파뱃 대소 구분없이 정규식으로 찾아서 조지기
- 1) __ __
- 파이썬 패키지 구성을 위한 __init__.py 및 __all__ : https://chancoding.tistory.com/207
- __call__ : ...
- ...
- 2) @wrapper
- ...
- 3) PYTHONUNBUFFERED
- https://docs.python.org/ko/3/using/cmdline.html#envvar-PYTHONUNBUFFERED
- 예) env PYTHONUNBUFFERED = 1
- 예) python -u ...
- 3) PYTHONPATH, PYTHONHOME, ...
- https://docs.python.org/ko/3/using/cmdline.html#envvar-PYTHONPATH
- 예) PYTHONPATH=/Users/Test/src python3 -u -X utf8 /Users/Test/src/test.py
- 4) UTF-8 모드
- https://docs.python.org/ko/3/using/windows.html#utf-8-mode
- 예) python -X utf8 ...
- 5) logging
- https://zephyrus1111.tistory.com/442
- StreamHandler :
- stdout | stderr 으로 출력
- FileHandler :
- RotatingFileHandler :
- TimedRotatingFileHandler :
- https://docs.python.org/ko/3/library/logging.handlers.html#timedrotatingfilehandler
-
import logging.handlers formatter = logging.Formatter('%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s') stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.INFO) stream_handler.setFormatter(formatter) timed_handler = logging.handlers.TimedRotatingFileHandler( filename='log/project.log', when='midnight', # S:초단위 M:분단위 H:시단위 D:일단위 midnight:자정 interval=1, encoding='utf-8') timed_handler.setLevel(logging.INFO) timed_handler.setFormatter(formatter) timed_handler.suffix = "%Y%m%d" logging.basicConfig( level=logging.INFO, #format="%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s", handlers=[ stream_handler, timed_handler, ] ) my_logger = logging.getLogger('my-project-app') my_logger.info(f"my_logger = {my_logger}") my_logger.info(f"my_logger_handlers = {my_logger.handlers}")
- 6) loguru
-
from loguru import logger def log_0(record): return bool("log_0" in record["extra"]) lv = os.getenv('MY_LOG', default='DEBUG') logger.remove() logger.add(sink=sys.stderr, colorize=True, format=r"<green>{time}</green> {level} <level>{message}</level>", filter=log_0, level=lv) #logger.add(sink="logs/local.{time}.log", rotation="1 days", retention="1 months") # backtrace=True diagnose=True my_logger = logger.bind(log_0=True)
-
- 7) @lru_cache
- ...
- ...
-끝-
'랭귀지&프레임웤' 카테고리의 다른 글
FastAPI : SQLModel (0) | 2024.11.30 |
---|---|
python async (0) | 2023.04.07 |
파이썬 프로그래밍 (0) | 2023.01.29 |
python ruff & uv (0) | 2022.10.26 |
Python DI (0) | 2022.09.04 |