코딩
-
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} \ ')
-
Python/애플 사진 .HEIC의 Exif 조작 - ExifTool코딩/Python 2024. 1. 19. 13:55
HEIC의 exif 수정법을 찾는 것이 무척이나 어려웠다. PIL, pyheif, piheif, heif 등등 기억도 다 안난다. 애플 사진 .heic의 exif 조작을 하기 위해 라이브러리들을 뒤졌지만 모두 실패했다. 겨우 건질 수 있었던 것은 heifread를 통해 exif를 읽기만 할 수 있다는 것. 읽을 수 있다는 것만으로도 고마웠다. 그러던 중 반가운 것을 발견. ExifTool이 heic의 exif의 읽기/쓰기를 지원한다는 것. 테스트 결과 HEIC 포함해서 거의 모든 이미지와 동영상 처리가 가능했다. 단지 라이브러리로 사용하는 것이 아닌 터미널에서 사용해야 한다는 것이 문제였다. 그래서 파이썬에서 커맨드라인 명령을 사용하는 subprocess를 이용해 코드를 만들어야 했다. 그렇다면 왜 .H..
-
Python/날짜와 시간으로 사진 이름 변경 - 0. 개요코딩/Python 2024. 1. 18. 19:02
스마트폰 덕분에 사진이 매우 많은데 관리를 하는데는 어려움이 있다. 동영상은 끊어서 저장하는 경우도 많아 파일 이름으로 분류하기가 쉽지 않다. 또한 스마트폰 뿐만 아니라 카메라, 액션캠들에게서 영상과 사진을 가져오면서 분류하기가 더 힘들어졌고, 그 자료들로 앨범이나 다른 자료를 생성할 때 사진의 이름이 뒤죽박죽인 순서대로 자료도 뒤죽박죽이 된다. 그래서 모든 영상과 사진을 생성일자에 따라 관리하기 위해 파일이름을 변경시켜주기로 했다. 많은 양을 수동으로 변경하는 것은 불가능하고, 사진의 경우엔 파일 생성일자와 EXIF 날짜가 달라 일일이 확인하는 것도 불가능하다. EXIF가 있는 사진은 EXIF 생성일로, 동영상 등은 파일 생성일로 파일이름을 변경하는 프로그램을 만들었다. 이 프로그램은 메인 프로그램 외..
-
Python/날짜와 시간으로 사진 이름 변경 - 3.1 유니크한 파일 이름 설정코딩/Python 2024. 1. 18. 18:27
주어진 경로에서 파일을 생성할 때, 주어진 시간을 기반으로 한 고유한 파일 이름을 생성하는 함수. generate_unique_time 함수: path (str): 새로 생성될 파일이 저장될 디렉토리의 경로. extension (str): 파일의 확장자. time (dt.datetime): 파일 이름을 생성할 때 사용할 기준 시간. time_delta (float): 파일 이름이 충돌할 경우 시간을 얼마나 증가시킬지 나타낸다. file_name_format (str): 시간을 문자열로 변환할 때 사용할 형식. 반환값 (str): 생성된 고유한 파일 경로. 시간을 문자열로 변환 및 파일 경로 생성: 주어진 시간(time)을 지정된 형식(file_name_format)으로 문자열로 변환. 변환된 시간 문자열..
-
Python/파일을 다루는 두 가지 방식, with... 와 f=open()코딩/Python 2024. 1. 18. 18:03
파일을 명시적으로 닫는 것이 좋은 프로그래밍 습관이다. 파일을 열고 난 후에는 항상 해당 파일을 닫아야 한다. 파일을 열면 리소스가 할당되며, 파일을 닫지 않으면 이 리소스는 해제되지 않을 수 있다. with open() as f: with 문을 사용하면 블록을 벗어날 때 자동으로 파일을 닫아준다. 직접 f.close()를 호출하지 않아도 된다. def get_exif_tag(path_file: str, tag: str) -> str: with open(path_file, 'rb') as f: tags = exifread.process_file(f) data = tags[tag] return data f = open() ... f.close() f=open()으로 파일을 열 경우 항상 f.close()로..