python3 여러가지 정리
분류: etc
requests
http/https 통신
import requests
res = requests.get(url,
headers={}
)
res.text
res = requests.post(url,
data={ } # body
headers={}
)
res.text
base64
import base64
# encode 시에는 string이 아닌 bytes를 건내야 한다. 결과는 bytes
base64.b64encode('string'.encode())
# b'c3RyaW5n
# decode 시에는 string, bytes 둘다 된다.
base64.b64decode('c3RyaW5n')
# b'string'
# 결과는 bytes이므로 decode()를 통해 string으로
base64.b64decode('c3RyaW5n').decode()
# 'string'
hashlib
sha1, sha256, md5 등 hash 함수 사용
input = 'data'.encode()
# b'data'
import hashlib
m = hashlib.new('sha1')
m.update(input)
hash1 = m.digest()
# b'\xa1|\x9a\xaaa\xe8\n\x1b\xf7\x1d\r\x85\n\xf4\xe5\xba\xa9\x80\x0b\xbd'
hash1.hex()
# a17c9aaa61e80a1bf71d0d850af4e5baa9800bbd
정규식 regex
import re
regex = re.compile('[0-9]+')
# match 함수는 문자열 시작부터 패턴에 맞는 부분을 찾는다.
m = regex.match('123')
matched = m is not None
print(matched) # True
# 전체가 패턴에 맞을 필요는 없다. 일부만이라도 패턴에 맞으면 통과한다.
m = regex.match('123 aa')
matched = m is not None
print(matched) # True
print(m.group()) # 123 : 매치되는 부분 출력
# 하지만 첫부분은 맞아야 한다.
m = regex.match('bb 123 aa')
matched = m is not None
print(matched) # False
# 전체 문자열이 패턴에 맞아야 한다면. 패턴에 \Z 를 추가하면 된다.
regex = re.compile('[0-9]+\\Z') # 혹은 r'[0-9]+\Z'
m = regex.match('123 aa')
matched = m is not None
print(matched) # False