python 285

[Python] re - 정규 표현식을 이용한 문자열 검색

re 파이썬의 기본 라이브러리 중 하나로 정규 표현식을 지원하기 위한 모듈이다. re는 regualr expression의 약자다. 사용법 기본 라이브러리이므로 별도 설치 없이 import하여 사용할 수 있다. import re p = re.compile('ab*') re 모듈은 4개의 문자열 검색 모듈을 제공한다. match 문자열의 처음부터 시작해서 정규식이 일치하는지 확인한다. match 객체 또는 None을 반환한다. import re print(re.match('[a-z]+', 'python')) print(re.match('[a-z]+', '3 python')) 문자열 "3 python"의 경우, 처음에 위치한 3이 [a-z]+을 만족하지 않아 None을 반환한다. search 문자열 전체를 ..

Python 2022.08.26

[Python] if __name__ == '__main__'

개요 Python 코드를 보다 보면 아래와 같은 부분을 발견하게 된다. if __name__ == '__main__': ... 이 글에서는 이 코드에 대한 의미와 왜 사용하는지에 대해 정리하려고 한다. __name__ 모듈의 이름이 저장되는 변수로 import로 모듈을 가져왔을 때는 모듈의 이름이 들어간다. 하지만 모듈을 직접 실행하면 __main__이 들어간다. 예시로 아래와 같은 plus 함수를 가진 calc 모듈이 있다고 하자. 그리고 이 모듈을 직접 또는 import해 실행하여 __name__ 변수를 출력해보았다. def plus(*args): return sum(args) print(f"__name__ : {__name__}") 직접 실행한 경우 import 한 경우 import calc pri..

Python 2022.08.21

[Python] requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

개요 시스템을 사용하는 사용자 목록을 확인하기 위해 아래와 같은 코드를 이용해 api 요청을 보내고자 한다. import os import requests if __name__ == "__main__": HOST = 'www.example.com' token = 'TOKEN' headers = {'Authorization': 'token %s' % token} LIST_USER = os.path.join(HOST, 'api/users') r = requests.get(LIST_USER, headers=headers) 그러나 실행하니 requests.exceptions.SSLError 에러가 발생했다. 조치 1. 인증 비활성화 자체 서명한 인증서를 사용하여 인증서를 신뢰할 수 없을 때, 가장 간단한 조치 ..

Python 2022.08.10

[Slack] requests.post 시 큰따옴표 처리

개요 아래의 python 코드를 이용해 slack webhook을 전송하려고 한다. def send_message(name, message): url = "WEBHOOK_URL" header = {'Content-type': 'application/json'} icon_emoji = ":crying_cat_face:" channel = "# test_alarm" data = f'{{"channel": "{channel}", "username": "{name}", "text": "{message}", "icon_emoji": "{icon_emoji}"}}' # 메세지 전송 return requests.post(url, headers=header, data=data) 하지만 아래와 같이 호출해도 메시지를 수..

[Python] *args / ** kwargs

개요 파이썬 코드를 보다 보면 아래와 같이 *args, **kwargs를 사용하는 함수가 존재한다. def myFun1(*args): ... def myFun2(**kwargs): ... 어떤 의미인지, 어떤 용도로 사용하는지 알아보도록 한다. *args Arguments를 의미하며, 함수에서 개수가 정해지지 않은 여러 개(n개)의 인자를 받을 때 사용한다. 예로 들어, 아래와 같이 3개의 숫자를 더하는 함수를 정의했다. def add(x, y, z): print("sum:", x + y + z) add(10, 12, 13) 그리고 4개, 5개의 숫자를 더한 값을 계산할 필요도 있다고 해보자. add 함수는 3개의 인자만을 전달받도록 정의되었기 때문에 4개 이상의 인자를 받을 수 없다. 때문에 4개의 인..

Python 2022.08.08

[Python] import - 다른 경로에 위치한 모듈 가져오기

import 2022.05.28 - [import] 모듈 가져오기 2022.08.04 - [Python] import - 검색 순서 위 글에서는 모듈을 가져오는 방법과 검색 순서에 대해서 알아보았다. 그래서 다른 경로에 있는 python 모듈을 가져와 사용하려면 어떻게 해야 하는가? 파이썬에서는 경로를 나타내는 방법으로 상대 경로와 절대 경로가 존재하지만, 이 글에서는 단순하게 동일 경로에 있는 모듈 하위 경로에 있는 모듈, 상위 경로에 있는 모듈을 가져와보도록 한다. 아래는 바쁜 현대인을 위한 요약이다. 동일 경로 : 단순 import 하위 경로 : from import 상위 경로/다른 경로 : sys.path.append('PATH') 동일 경로 먼저 아래 구조의 프로젝트가 있다고 하자. expr/p..

Python 2022.08.06

[Python] import - 검색 순서

import 2022.05.28 - [import] 모듈 가져오기에서 다른 모듈을 가져와 사용하는 방법을 정리했다. pip, conda 등으로 설치한 모듈은 import 문으로 사용하면 되는데, 직접 작성한 Python 모듈은 어떻게 가져와야 할까? 먼저 import 문은 아래 목록을 순서대로 탐색하며 가져올 모듈을 찾는다. sys.modules built-in modules sys.path 순서대로 탐색하여 찾는 모듈과 패키지가 없으면 ModuleNotFoundError가 발생한다. sys.modules 파이썬이 모듈이나 패키지를 찾기 위해 가장 먼저 확인하는 곳. 현재 프로젝트에서 import 해서 사용하고 있는 모듈과 패키지를 저장한 dictionary다. 한 번 import 된 모듈과 패키지를 다..

Python 2022.08.04

[Python] 이모지 출력하기

이모지 인쇄 파이썬에서 이모지를 인쇄하는 방법은 유니코드, CLDR 등 여러 가지가 존재하는데, 간단히 정리해두려고 한다. 이모지 목록은 아래 URL에서 확인할 수 있다. http://unicode.org/emoji/charts/full-emoji-list.html 이모지 복사/붙여 넣기 이모지는 텍스트와 같이 취급할 수 있기 때문에 복사하여 붙여 넣을 수 있을 뿐만 아니라 print 함수로 출력할 수도 있다. print('👩‍🍼') Unicode 모든 이모지에는 Unicode와 CLDR 이름이 정해져 있기 때문에, unicode나 CLDR 이름을 알면 이모지를 출력할 수 있다. 방법 1. 먼저 이모지 목록에서 원하는 이모지의 Unicode(U+1F63F)를 확인한다. 2. Unicode의 +문자를 0으..

Python 2022.07.28

[Pip] pip를 통해 설치한 패키지 전부 삭제(초기화)

개요 python 환경에 pip를 이용해 패키지를 여럿 설치했다. 근데 좀 잘못 설치한 것 같다……. 그래서 pip를 이용해 설치한 패키지를 전부 삭제하고 싶다. 다만 의존 패키지도 함께 설치되었기 때문에 삭제할 패키지가 많은 상태이다. 113개의 패키지를 한꺼번에 삭제하는 방법을 정리해둔다. 방법 1. 설치한 패키지 목록(requirements.txt) 추출 pip freeze > requirements.txt pip freeze 명령은 '패키지 이름=버전' 형식으로 설치한 패키지 목록을 출력해준다. 그 출력 결과를 requirements.txt로 저장한다. 2. requirements.txt 상의 패키지 삭제 pip uninstall -r -y # -r : --requirement. 지정한 requi..

Python 2022.07.26

[python3] venv 사용

venv 2021.06.25 - [CentOS 7] virtualenv 설치 및 사용 에서 소개한 virtualenv와 동일한 기능을 하는 python 가상 환경. pip로 설치해야 하는 virtualenv와 다르게 python3.4부터 표준 배포판에 내장되어 있어 별도로 설치할 필요가 없다…… 고 한다. 설치 다만 Ubuntu의 경우, 아래의 명령어로 설치를 수행해야 정상적으로 가상 환경이 생성되었다. 😅 apt install python3-venv 가상 환경 생성 venv는 python3 -m 옵션을 사용해 생성할 수 있다. python3 -m venv ./ # 예시 python3 -m venv ./airflow 지정한 경로에 가상환경이 생성된다. 경로명이 가상 환경의 이름이 된다. 가상 환경 활성화..

Python 2022.07.21