본문 바로가기
관리자

Programming-[Backend]/Python

(38)
[링크] python circular import 해결 - import time, runtime py 파일 맨 위쪽에서 import 하지말고, 함수 선언문이나 실행문 속에서 from ... import ...을 하면 된다. 맨 위쪽 import는 파이썬이 처음 실행을 위해 import문들을 모두 스캔할 때 import하는 것이고, 함수 선언문이나 실행문에서의 import는 실제로 그 함수가 불릴때(runtime) import하는 것이다. https://blog.mathpresso.com/python-circular-imports-e89c5bf16510 Python Circular Imports Python Circular Imports가 무엇이며, 오류는 어떻게 해결할까? blog.mathpresso.com
[TIL][링크] 파이썬 부모 생성자 호출, __init__ BaseError 상속 https://newbie-developer.tistory.com/146 파이썬. 클래스 상속과 생성자에 대하여. 그리고 super에 대하여 자식 클래스에서 따로 생성자를 선언하지 않으면 자식 객체를 생성하면 자동으로 부모클래스의 생성자를 실행한다. class paraent(): def __init__(self,input1): print("부모 생성자 실행. 인풋 파라미터는") newbie-developer.tistory.com 요약 class ChildError(BaseError): default_code = CODE1 class BaseError(APIException): status_code = status.HTTP_400_BAD_REQUEST default_detail = "" default_co..
Python PIL _getexif, TAGS 적용, AttributeError, JPEG, TIFF 차이 가장 표면적인 응용 기술 부분부터 살펴나간다. 1. PIL의 _getexif, TAGS 다음 코드를 통해 이미지 파일의 메타정보(촬영일, 촬영 장소 gps, 이미지 크기 등)를 얻어낼 수 있다. from PIL import Image, ExifTags image_file = Image.open("./열고자 하는 그림 파일") exif = image_file._getexif() if exif: exif_tag = {ExifTags.TAGS[k] for k, v in exif.items() if k in ExifTags.TAGS} PIL은 Python의 Image 처리 라이브러리이다. 여기서 Image 클래스를 이용하여 Image들을 처리할 수 있다. ExifTags는 이미지 파일의 메타 정보에 대한 key..
[TIL] python 빈 리스트/None check, django test request값 안 변할 때 -> 테스트 메서드 이름 중복 1. python none check ==은 금지, a is None으로 체크! a = [] 일때, a is None = False, isinstance(a, list) = True a = None 일 때 a is None = True 2. django test request값 안 변할 때 -> 테스트 메서드 이름 중복을 확인하자 테스트 메서드 이름이 같으면 앞에 껄 실행해도 뒤에 나온걸로 override 된다. 아래 코드와 같이 같은 이름으로 test_update_something이라는 메서드가 중복되면, 위 쪽 코드의 data ={...} 내부의 값을 변경하고 테스트를 실행해도, 아래 테스트 메서드가 실행되면서 혼란을 겪을 수 있음! def test_update_something(self, *args..
[탐험] ffmpeg-ffprobe로 AWS S3에 있는 Video 파일 메타데이터 추출: 비디오 스트림, AWS Presigned URL 방식 이해 2 목차 1. 영상 데이터에 대한 개념 2. AWS Presigned URL 3. 파이썬 서브프로세스, os.system 차이 4. ffmpeg, ffprobe, 메타데이터, 멀티미디어 파일 분석의 한계 참고: 사용 코드(파이썬, ffprobe) video_object_key = settings.AWS_MEDIA_LOCATION + "/" + copy_upload_path ##AWS에서 영상에 대한 presigned url 가져오기 location = boto3.client("s3").get_bucket_location( Bucket=settings.AWS_STORAGE_BUCKET_NAME )["LocationConstraint"] url = boto3.client( "s3", config=Config(s..
[탐험] ffmpeg-ffprobe로 AWS S3에 있는 Video 파일 메타데이터 추출: 비디오 스트림, AWS Presigned URL 방식 이해 1 목차 1. 영상 데이터에 대한 개념 2. AWS Presigned URL 3. 파이썬 서브프로세스, os.system 차이 4. ffmpeg, ffprobe, 메타데이터, 멀티미디어 파일 분석의 한계 사용 코드(파이썬, ffprobe) video_object_key = settings.AWS_MEDIA_LOCATION + "/" + copy_upload_path ##AWS에서 영상에 대한 presigned url 가져오기 location = boto3.client("s3").get_bucket_location( Bucket=settings.AWS_STORAGE_BUCKET_NAME )["LocationConstraint"] url = boto3.client( "s3", config=Config(signa..
파이썬 중급 - 10. 멀티 스크래핑 실습 : asyncio, beautifulsoup 목적 멀티 스크래핑 실습을 통해서 비동기 I/O Coroutine 작업을 연습해본다. Blocking I/O : 호출된 함수가 자신의 작업이 완료될 때까지 제어권을 갖고 있음. 타 함수는 대기 Non Blocking I/O : 호출된 함수(서브루틴)가 yield후 호출한 함수(메인 루틴)에 제어권을 전달. 타 함수 작업 진행 asyncio는 Non Blocking I/O를 편하게 구현할 수 있는 라이브러리다. 여기서 주의할 점은 해당 라이브러리를 사용하더라도 내가 작성한(사용하는) 함수가 Blocking 형태로 코딩이 되있다면 asyncio를 사용하는 의미가 없어진다. 설치 파이썬 프로젝트를 하나 만들고, asyncio와 beautifulsoup4를 설치한다. pip install asyncio pip ..
파이썬 중급 - 9. 동시성과 병렬성 : Futures 개요 동시성, 병렬성과 관련한 부분은 실제 코딩이 어렵다기보다는 이론적인 배경을 정확하게 아는 것이 어렵고, 중요하다. 따라서 이번 강의 내용 정리는 개요 수준이고, 앞으로 더 많은 경험과 학습을 통해서 완전한 이해가 필요하다. Futures를 이용하여 동시성 작업을 할 수 있다. 목적은 비동기 작업을 실행하여 지연 시간(Block)과 리소스 낭비를 방지하는 것이다. 보통 File, Network 등 I/O 관련 작업에서 동시성을 활용하는 것을 권장한다. 과거에는 threading, multiprocessing 등의 모듈을 import 해야했지만, 지금은 더 캡슐화되어 futures로 통합되었다. 특히 futures는 GIL(Global Interface Lock) 방식을 사용한다. 이것은 두 개 이상의..