파이썬의 딕셔너리를 문자열로 바꾸는 방법을 다루고 있습니다. 2023. 3.12 최초작성 파이썬의 장점은 거의 모든 것을 print로 출력해서 확인해볼 수 있다는 겁니다. 딕셔너리도 자주 출력해보곤 했었는데 이번엔 터미널이 아닌 이미지 위에다가 출력해볼 필요가 생겨서 해보니 안되네요. 출력시 print문을 사용하는게 아니라면 문자열로 바꿔야 되는 구나 싶더라구요. 찾아보니 아래 링크에서 딕셔너리를 문자열로 바꾸는 3가지 방법을 소개합니다. 처음 2가지 방법은 간단한데 세번째 방법은 for문을 사용하여 딕셔너리 아이템을 하나씩 출력하는 방법입니다. 커스텀 스타일로 딕셔너리를 출력해볼게 아니면 처음 2가지 방법으로 충분하네요. https://favtutor.com/blogs/convert-dict-to-st..
파이썬 딕셔너러의 vaule별 개수를 세는 예제 코드입니다. 2023. 1. 28 최초 작성 from collections import Counter # 딕셔너리 생성. 3가지 종류의 값을 가집니다. dict_a = {1:False, 2:True, 3:False, 4:None, 5:True, 6:False} print(Counter(dict_a.values())) # Counter({False: 3, True: 2, None: 1}) print(Counter(dict_a.values())[True]) # 2 print(Counter(dict_a.values())[False]) # 3 print(Counter(dict_a.values())[None]) # 1 참고 https://stackoverflow.c..
Python에서 Class 내 global 선언 위치를 다룹니다. 2023. 1. 17 최초작성 스레드 내에서 전역변수를 수정할 일이 생겨서 사용하려고 했는데 global을 클래스내 어디에 선언해야 할지 모르겠더군요. 찾아보니 전역변수를 사용할 메소드 내에 선언하면 된다고 하네요. 아래 코드의 경우에는 run 메소드내에 global을 선언했습니다. 아래 예제코드는 전역 변수 i를 스레드에서 수정하는 코드입니다. import threading class Count(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): global i while i > 0: print(i) i = i - 1 print('thr..
Python 3.10에서 추가된 C/C++의 switch case와 유사한 match case 예제입니다. 2022. 11. 4 최초작성 match문에 있는 변수 input의 값이 case 문에 있는 조건을 만족하면 해당 코드가 실행됩니다. case 문에 값이 지정되지 않은 경우는 _를 사용한 case 문에 있는 코드가 실행됩니다. def f(input): match input: case 'apple': print('사과') case 'banana': print('바나나') case _: print('선택된 것이 없습니다.') f('apple') f('orange') 사과 선택된 것이 없습니다. | 를 사용하여 두가지 이상의 조건을 하나의 case 문에 추가할 수 있습니다. 다음 예제에서는 input이 ..
warpAffine 함수를 사용하여 아핀 변환(Affine Transformation)을 구현합니다. 아핀 변환에서 원본 이미지의 모든 평행선은 출력 이미지에서 여전히 평행합니다. 아핀 변환 행렬을 찾으려면 입력 이미지의 3점과 대응하는 출력 이미지의 3점이 필요합니다. getAffineTransform 함수를 사용하면 대응하는 3점 쌍에 대한 변환 행렬을 구할 수 있습니다. warpAffine함수를 사용하여 변환을 실행합니다. 마지막 업데이트 - 2018. 10. 5 왼쪽 위, 오른쪽 위, 왼쪽 아래 순으로 마우스로 클릭합니다. 클릭한 위치에 빨간점이 표시됩니다. 스페이스바를 클릭하면 오른쪽 위 점이 아래로 밀린 이미지가 보입니다. 다시 스페이스바를 클릭하면 왼쪽아래 점이 오른쪽으로 밀린 이미지가 보입..
함수에 mutable 객체인 리스트를 아규먼트로 전달하는 경우에 대해 알아봅니다. 2023. 9. 2 최초작성 파이썬의 데이터 타입에는 값을 수정할 수 없는 Immutable 객체와 값을 수정할 수 있는 mutable 객체가 있습니다. immutable 객체에는 정수, 실수, 문자열, 튜플이 해당되며 mutable 객체에는 리스트와 딕셔너리가 해당됩니다. immutable 객체는 값을 변경하면 다른 객체로 바뀌게 됩니다. 정수 객체를 코드로 살펴봅니다. 변수 a에 정수 객체 100을 대입합니다. >>> a = 100 id 함수는 객체의 고유 식별자를 리턴하는데 객체의 데이터가 저장된 메모리 주소로 볼 수 있습니다. >>> id(a) 4302575056 변수 a에 정수 객체 200을 대입합니다. >>> a..
파이썬 딕셔너리를 파일에 저장했다가 로드하는 예제 코드입니다. 2023. 10. 24 최초작성 본 포스트에서는 두 가지 방식으로 저장하는 방법을 소개합니다. 저장하는 방식에 따라 파일 내용을 편집기에서 볼 수 있는지 여부가 달라집니다. 편집기로 안보이는 바이너리로 저장 → pickle 편집기로 보이는 JSON으로 저장 → json pickle import pickle dict_example={1:"one", 2:"two", 3:"three", 4:"four", 5:"five"} print('원본 딕셔너리', dict_example, type(dict_example)) file=open("data.pickle","wb") pickle.dump(dict_example, file) file.close() fi..
데이터 파일을 메모리에 로드하지 않고 다룰 수 있는 dask를 간단히 사용해보았습니다. 자세한 사용방법은 아래 링크를 참고하세요. https://docs.dask.org/en/latest/ 2022. 1. 17 최초작성 소스코드 파일 이름을 dask.py로 하면 다음처럼 에러가 날 수 있으니 주의하세요. 임포트하려는 모듈이름 dask와 같은 소스코드 파일 이름을 사용했기 때문에 에러가 나는 것입니다. (newenv) webnautes@webnautesui-MacBookAir python_work % /Users/webnautes/miniconda3/envs/newenv/bin/python /Users/webnautes/Documents/python_work/dask.py Traceback (most re..
Process, Thread, Main 함수의 로그를 파일로 저장하는 logging Python 예제 코드입니다. 2022. 12. 25 최초작성 import logging import logging.handlers import multiprocessing import threading def listener_configurer(): root = logging.getLogger() h = logging.handlers.RotatingFileHandler('log_test.txt', 'w', 0, 0) f = logging.Formatter('%(asctime)s %(processName)-10s %(name)s %(levelname)-8s %(message)s') h.setFormatter(f) root..
파이썬에서 실행중인 프로세스 이름과 pid를 출력하는 예제 코드입니다. 2022. 8. 6. 최초작성 from multiprocessing import Process def count(num): while num > 0: num = num - 1 print(num) print('process exit') if __name__ == '__main__': # Process를 사용하려면 꼭 적어줘야 합니다. t = Process(target=count, args=(10,)) t.start() # 실행중인 프로세스 리스트를 출력합니다. import psutil current_process = psutil.Process() children = current_process.children(recursive=True..