코딩/Python
-
Python/람다식의 다른 적용: if문 대체코딩/Python 2024. 3. 8. 16:56
람다식의 확장 함수 여기 세 함수가 있다. 입력값에 100,200,300을 더하는 함수다. def p100(n): re = n + 100 return re def p200(n): re = n + 200 return re def p300(n): re = n + 300 return re if문 만일 이 함수들을 케이스로 사용한다면 if..elif..else를 쓸 것이다. q = 1 if q == 1: ans = p100(q) elif q == 2: ans = p200(q) elif q == 3: ans = p300(q) else: print('No answer') 여기까지는 일반적인 방법이다. 람다식 이제 람다식과 리스트를 결합해서 케이스를 대체한다. cmd_l = [lambda n: p100(n), lam..
-
Python/정규식 HOWTO코딩/Python 2024. 3. 4. 10:24
아래 내용은 Python reference를 번역한 것이다. 원본 내용은 제목의 링크를 참조한다. Regular Expression HOWTO Author: A.M. Kuchling Abstract This document is an introductory tutorial to using regular expressions in Python with the re module. It provides a gentler introduction than the corresponding section in the Library Reference. 이 문서는 re 모듈과 함께 Python에서 정규식을 사용하는 방법에 대한 입문 튜토리얼이다. Library Reference의 해당 섹션보다 덜 딱딱한 소개를 제공한다..
-
Python/Enumerate()의 올바른 이해코딩/Python 2024. 2. 26. 03:25
리스트를 순환할 때 흔히 쓰는 enumerate(). 파이썬에도 있고 스위프트에도 있고 여러 언어에서 쓰이는 개념이다. enumerate(iterable, start)에서 start 옵션을 사용할 때 주의할 점이 있다. 아래 코드는 작동하지 않는다. start 옵션은 인덱스 시작값만 3으로 설정하고 xs의 실제 리스트는 xs[0]에서 시작하는 것은 그대로이기 때문이다. 그래서 i가 10이 될 때 에러가 난다. 리스트는 xs[9]가 마지막이기 때문이다. xs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for i, x in enumerate(xs, 3): print(f'i {i}: {xs[i]}') ''' output i 3: 3 i 4: 4 i 5: 5 i 6: 6 i 7: 7 i 8: 8..
-
Python/Data 입력값, 인수, 변수코딩/Python 2024. 2. 11. 23:05
프로그래밍에서 사용자 입력값을 별도로 분리하는 것은 여러 가지 이점을 가질 수 있다. 모듈성 및 유지보수 향상: 사용자 입력값을 별도로 분리하면 코드의 모듈성이 향상된다. 입력값을 관리하는 부분이 독립적으로 존재하면 해당 부분을 쉽게 이해하고 수정할 수 있다. 이는 유지보수성을 향상시키고 코드를 더 쉽게 개선하거나 확장할 수 있게 한다. 입력 유효성 검사: 별도의 입력 관리 모듈을 사용하면 입력값을 쉽게 유효성 검사할 수 있다. 이를 통해 잘못된 입력을 방지하고 프로그램이 예상치 못한 동작을 하는 것을 방지할 수 있다. 재사용성 향상: 사용자 입력값을 분리하면 해당 부분을 다른 프로젝트나 모듈에서 재사용하기가 훨씬 용이해진다. 특히 유효성 검사 로직이나 입력 처리 로직은 다른 프로젝트에서도 유용하게 활용..
-
Python/애플 사진(Desktop Apple Photos)/Video date & EXIF issue코딩/Python 2024. 2. 1. 18:48
The differences between MOV and MP4 regarding date and GPS support are as follows. .MOV .MP4 GPS Non standard X EXIF Non standard X With Exiftool, I got the tags as follows. GPS is displayed in the Photos app(Desktop) by "Keys:GPSCoordinates" Tag, and date is displayed by "QuickTime:CreateDate" tag. When using the gps tag with exiftool, the format is "% deg %' %.2f" when reading the value, but t..
-
Python/사진, 동영상 정리 V2코딩/Python 2024. 1. 23. 22:24
이전 프로그램에 문제가 있었다. 날짜와 시간으로 사진 이름 변경 - 0. 개요 Python/날짜와 시간으로 사진 이름 변경 - 0. 개요 스마트폰 덕분에 사진이 매우 많은데 관리를 하는데는 어려움이 있다. 동영상은 끊어서 저장하는 경우도 많아 파일 이름으로 분류하기가 쉽지 않다. 또한 스마트폰 뿐만 아니라 카메라, 액션캠 summertrees.tistory.com 사진 확인 없이 CSV로만 데이터를 변경하는 게 힘들었다. 그리고 파일이름을 시간 순서대로 변경해야 하는데 파일이름 변경하는 건 CSV에서 고려가 없었다. 파일이름은 어쨌든 사진을 보면서 순서대로 바꿔야 하니 수작업일 수밖에 없었다. 그렇게 파일이름을 바꾸고 난 뒤, 파일이름을 따라 사진은 Exif, 동영상은 생성일을 바꿔주는 방식으로 프로그램..
-
Python/Mac/POSIX/SetFile로 파일 생성일 변경코딩/Python 2024. 1. 23. 16:09
GoPro Max 등의 360 카메라는 영상을 촬영하고 후처리를 통해 MP4 영상을 추출한다. 이렇게 만들어진 MP4 동영상은 촬영일자가 실제 영상을 촬영한 날짜와 달라 파일관리와 영상편집등에서 사용하기 불편하다. 그래서 영상 촬영일과 시간으로 파일이름을 만들고 파이썬으로 파일이름에 따라 파일생성일을 변경해준다. os.stat Windows에서는 os.utime()으로 날짜를 변경하는데 문제가 없는데 POSIX(Mac OS)에서는 파일의 액세스, 내용수정시간은 변경할 수 있어도 생성일을 변경할 수는 없다. os.stat_result의 타임스탬프는 아래와 같다. st_atime: 초 단위의 가장 최근의 액세스 시간. st_mtime: 초 단위의 가장 최근의 내용 수정 시간. st_ctime: 플랫폼에 따라..
-
Python/터미널 출력화면을 화려하게 만들어주는 라이브러리 colorama코딩/Python 2024. 1. 23. 13:47
종종 터미널에서 정보를 확인해야 하는데 가독성이 떨어져 힘든 경우가 있다. 이럴 경우 colorama를 사용하면 텍스트의 색상을 바꿀 수 있어 가독성일 향상시킬 수 있다. {Fore.색상}으로 텍스트의 색상을 지정해 사용한다. 사용 후에는 {Style.RESET_ALL}로 리셋해서 원래 색으로 돌아오게 한다. 리셋을 하지 않으면 계속 텍스트색상이 유지된다. from colorama import Fore, Style print(f' \ {Fore.RED} Red\n \ {Fore.BLUE} Blue\n \ {Fore.CYAN} Cyan\n \ {Fore.GREEN} Green\n \ {Fore.MAGENTA} Magenta\n \ {Style.RESET_ALL} \ ')