반응형 Python127 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 - Error cv2 (-215:Assertion failed) !ssize.empty() in function 'resize' 이오류를 해결하기까지 시간이 조금 소요되었는데, 가장 시도해볼 수 있는 방법은 바로 사이즈이다. 필자가 확인한 내용으로는 사이즈가 정상 범주에서 너무 크기 때문에 발생하게 된다. 쉽게 확인하는 방법은 cv2.imread(imagepath) 를 이용해서 읽어보는 것이다. 그럼 오유 원인이 사이즈인데, 결과는 ssize.empty로 떨어지는 경우가 많다. 물론 이를 위해서 파일 경로 문제라던가, 다양한 문제가 있지만, 필자는 다음과 같은 코드를 이용해서 사이즈를 조정하면 해소가 가능하다. from PIL import Image image = Image.open(image_path) re_height = round(image.height / 2) re_width = round(image.width / 2) i.. 2024. 2. 29. Docker - exec, 컨테이너 명령 실행/세션 연결 Docker를 사용하다보면 실행중인 컨테이너에서 간단한 작업이 필요할 때가 있다. 이때 유용하게 사용할 수 있는 명령이 바로 exec 명령으로, 이 명령을 어떻게 사용할 수 있는지 간단히 알아보도록 하겠다. exec 명령은 현재 실행중인 컨테이너에 명령을 실행하게 해주는 명령으로 가장 기본적으로 아래 두가지 방식으로 사용된다. 명령 실행 가장 간편하게 사용할 수 있는 방법으로, docker exec를 통해 명령 실행이 가능하다. docker exec 아래와 같이 현재 경로를 확인하거나 간단하게 운영시 필요한 작업등이 가능하다. 필자 역시 주로 ps 명령을 이용해서 Docker 컨테이너 내 프로세스 상태를 확인하는 작업을 종종한다. 세션 연결 조금 더 많은 작업이 필요한 경우 세션을 직접 연결해서도 작업이.. 2024. 2. 28. JIRA - 이슈 벌크 삭제(Bulk Delete) API 이슈 벌크 삭제(Bulk Delete) API 이슈가 많은 경우 이를 한번에 삭제하기는 어렵다, 여기에서는 특정 날짜를 기준으로 그 이상 날짜가 된 경우 삭제하는 것인데, 내부적으로 이슈의 생성 날짜의 필드 기본값은 created 로 되어 있다. 즉 특정 프로젝트 와 날짜가 지난 데이터는 0: for delete_item in delete_issues: try: delete_item.delete() time.sleep(1) except Exception as error: print(error) 만약 특정 상태인 값만 지정하고 싶다면 status를 추가해 주면 된다. 필자는 JIRA의 기본 상태인 "To Do" 인 경우 삭제하는 것으로 쿼리 값을 지정해 보았다. project = FTCO AND created 2024. 2. 28. Python - OpenCV partially initialized module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' OpenCV를 이용하다보면, 발생하는 오류로써, OpenCV를 별도로 설치할때 보통 오류가 발생하게 된다. 이 문제점은 버전 호환성 문제라고 하는데, 문제가 발생하는 버전을 제거하고, opencv-python==4.5.5.64 로 설치하여 해결이 가능하다. pip uninstall opencv-python pip install opencv-python==4.5.5.64 2024. 2. 28. 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. Python - cv2 설치 방법 Python용으로 사전 빌드된 CPU 전용 OpenCV 패키지로 이미지 처리시 Numpy, EasyOCR등이서 사용된다. 따로 설치하여 사용하는 방법은, opencv-python로 이름이 다르기 때문에 주의해야 한다. pip install opencv-python https://www.indiegogo.com/projects/opencv-5-support-non-profit-open-source-cv-ai#/ OpenCV 5, Support Non-Profit Open Source CV & AI The biggest ever release of the world's largest computer vision library. Support Open Source. | Check out 'OpenCV 5, S.. 2024. 2. 27. SQLAlchemy - str() argument 'encoding' must be str, not ModuleNotFoundError argument 'encoding' must be str, not ModuleNotFoundError 이 오류를 확인하는 데 한참 걸렸는데, 결국은 라이브러리를 설치 하지 않아서 나타난 오류이다. SQLAlchemy 는 실제 연결을 위해서는 PyMySQL을 필요로 한다. PyMySQL SQLAlchemy SQLAlchemy는 Database를 도와주는 프레임워크이고 실제 연결은 PyMySQL을 이용해야 하는 것이다. 혹시 필자와 비슷한 오류를 경험하고 있다면, PyMySQL를 설치하도록 하자. 2024. 2. 26. Python - not ModuleNotFoundError, subprocess not ModuleNotFoundError 에러는 모듈 설치 위치를 찾을 수 없을 때 많이 발생하고, subprocess를 실행했을 경우 일반적인 상황과 다른 참조 오류로 인해 발생하는 경우도 존재한다. 가장 흔히 발생하는 모듈의 설치 위치가 달라서 발생하는 오류는 sys.path.append 을 이용하여 현재 작업 경로의 상위 경로를 입력해 줌으로써 해결이 가능하다. 가장 많이 사용하는 방법은, 하위에서 상위 경로를 추가하는 방식이다. base_dir > sub_dir(현재 Python 파일 위치) 이때 경로를 입력하지 않고 sys.path.append(os.path.dirname(os.path.dirname(__file__))) 를 입력하면 자동으로 현재 폴더의 상위 폴더를 시스템 변수에 설정하게 된.. 2024. 2. 25. 이전 1 ··· 9 10 11 12 13 14 15 다음 반응형