반응형

아이폰 이미지 이름 변경 결과

아이폰 이미지 같은 경우 사진을 백업하게 되면 아래와 같이 IMG_<숫자>.JPG 형식의 이미지가 저장됩니다.

따라서 이 사진이 언제 찍은지 알 수가 없어 사진을 제3의 백업 장소에 백업해서 정리하는 사람에게는 대략 난감한 상황이 아닐 수 없습니다.

저도 몇년치를 몰아서 한꺼번에 백업하려고 하니까 아이폰 사진을 저장하는게 제일 난감하더라구요...

저는 이러한 문제를 Exifread 라는 파이썬 모듈을 사용하여 해결하였습니다.

유용하겠다 생각하여 해결한 한 방법을 공유 드립니다!^^

아이폰 이미지 원본

 

윈도우 기준으로 이미지가 언제 찍혔는지 보는 방법은 사진 파일을 오른쪽 클릭 -> 자세히 -> 원본 에서 확인이 가능합니다.

이 사진은 2016년 08월 30일 오전 10:44에 찍혔네요

이미지 속성

 

아래는 파이썬의 exifread 모듈을 사용해서 해결한 소스코드의 일부분 입니다.

소스코드에도 보이겠지만 사진 파일을 바탕화면 하위에 "1212"라는 폴더에 저장했고

사진 파일 명은 IMG_6066.JPG 입니다.

이미지 변경 python 소스코드

 

그리고 나서 실행만 하면 아래와 같이 사진 이름이 변경되었다는 출력결과가 나옵니다.

실행 결과

 

실제로 해당 폴더에 들어가서 확인해보니 사진 이름이 잘 변경되어 있습니다.

 

아이폰 이미지 이름 변경 결과

 

여러분도 저와 같은 어려움을 겪으셨다면 Python 프로그래밍으로 어려움을 해결하시길 바라겠습니다.

 

아래 소스코드는 위에서 소개해드렸던 소스코드 공유드립니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 반드시 실행 전 pycharm을 관리자 권한으로 실행할 것!
import os
import exifread
 
image_folder_path = '<사진 저장 폴더>'
image_nm = '<사진이름>'
image_abspath = image_folder_path + '\\' + image_nm
print('원본이름: ' + image_nm)
 
# 파일 확장자
ext_idx = image_nm.find('.')
ext = image_nm[ext_idx:]
 
# 사진 파일에서 생성 날짜 메타 데이터 정보 추출할 수 있는 경우
= open(image_abspath, "rb")
tags = exifread.process_file(f)
timedata = str(tags['EXIF DateTimeOriginal'])
f.close()
 
# 변경할 이름 (데이터 파싱)
timedata = timedata.replace(':''')
fname = timedata.replace(' ''_')
 
# 확장자 붙이기
fname = fname + ext
print('변경이름: ' + fname)
 
# 파일 이름 변경
file_oldname = os.path.join(image_folder_path, image_nm)
file_newname = os.path.join(image_folder_path, fname)
os.rename(file_oldname, file_newname)
print('---변경 완료---')
 
cs

 

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

반응형
반응형

오늘은 지난 시간에 이어서 파워쉘 스크립트를 이용하여 특정 폴더 내에 있는 영상 파일들을

한꺼번에 바꿀 수 있는 자동화 된 스크립트를 공유드리겠습니다.

 

방법은 먼저 특정 폴더를 지정하여 동영상 파일들을 복사하여 넣어줍니다.

저는 바탕화면 하위에 있는 "1212"라는 폴더에 동영상 파일들을 넣었습니다.

파워쉘 스크립트 실행 전 파일명

 

파일들을 다 넣었으면 스크립트를 실행합니다.

참고로 파워쉘 스크립트와 ExifTool(exe 실행파일은) 바탕화면에 위치 시키고 스크립트를 실행했습니다.

 

ExifTool에 대한 전반적인 내용은 이전 포스팅에서 참고하시면 됩니다.

https://betterinvesting.tistory.com/291

 

[PowerShell] 파워쉘을 이용하여 동영상 파일 이름을 생성시간으로 변경하는 방법 - 1

가족들의 사진과 동영상을 백업하던 중 사진과 동영상 파일들 이름이 뒤죽박죽이여서 날짜별로 정리가 필요했습니다. 이미지 사진 파일은 PYTHON 프로그램을 만들어서 이름을 변경

betterinvesting.tistory.com

 

스크립트를 실행하면 스크립트에 지정된 폴더(ex, 1212) 하위에 있는 모든 동영상 파일에 생성날짜를 읽어들여서

기존 파일 이름.MOV -> 생성날짜_시간.MOV 으로 변경하여 줍니다.

파워쉘 스크립트 실행 화면

 

스크립트가 다 실행되면 아래 사진과 같이

파일 이름들이 생성날짜_생성시간.<확장자> 형식으로 변경되게 됩니다.

파워쉘 스크립트 실행 후 파일명

 

 

자동화된 스크립트는 아래에서 공유드리겠습니다.

이 스크립트는 제가 실제로 실행하였던 스크립트이니 상황에 맞게 수정하여서 사용하시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 영상파일 경로로 이동
cd C:\Users\nick\Desktop\1212
 
# 현재 경로 확보
$pwd = Get-Location | foreach {$_.Path}
 
# 파일명 리스트 확보
$movie_list = Get-ChildItem . *.M* | foreach {$_.Name}
 
foreach($movie in $movie_list){
    echo $movie
    $file_abs = $pwd+'\'+$movie
    
    # 파일 확장자
    $ext = [System.IO.Path]::GetExtension($movie)
    
    # 파일 생성일 확보
    $c_date = C:\Users\nick\PycharmProjects\picture_name_collector\exiftool.exe $file_abs | findstr /R ^Creation
  
    
    # 파일명 수정
    $name = $c_date.Substring(34,19).replace(':', '').replace(' ','_')
    
    # 파일 이름 수정 부분
    $new_name = $name+$ext
    echo $new_name
    Rename-Item -Path $file_abs -NewName $new_name
}
 
# 이전 경로로 이동
cd ..\
cs

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

반응형
반응형

 

가족들의 사진과 동영상을 백업하던 중 사진과 동영상 파일들 이름이 뒤죽박죽이여서 날짜별로 정리가 필요했습니다.

이미지 사진 파일은 PYTHON 프로그램을 만들어서 이름을 변경했는데 문제는 동영상 파일의 이름을 수정하는 것이였습니다.

 

* 참고로 Python 프로그램을 이용하여 사진 이미지 파일의 이름을 수정하는 방법은 다음 포스팅에서 따로 다루도록 하겠습니다.

 

동영상 파일은 Python 프로그램을 통해서 해결할 수 없기 때문에

윈도우 PowerShell 스크립트를 통해 해결했습니다.

 

이제 단계별로 파일이름을 자동으로 수정하는 방법을 설명드리겠습니다.

 

 

  Step 1. EXIFTool 다운로드

 

동영상 파일의 생성날짜를 알기 위해서는 동영상 파일의 Meta 데이터에 접근해야 하는데

그 정보를 얻기 위해선 exiftool 프로그램을 통해 정보를 확인할 수 있습니다. 

 

아래 다운로드 경로에 exiftool 프로그램을 다운받습니다.

다운로드URL : https://exiftool.org/

 

 

 

  Step 2. PowerShell을 통해 생성날짜 필터링

 

다운을 받고 난 후, 아래 사진과 같이 명령어를 입력하면 동영상의 자세한 정보를 확인할 수 있습니다.  

명령어: exiftool.exe <동영상파일>

 

저희가 관심있는 것은 동영상 파일의 생성 시간이기 때문에 동영상 파일의 생성 시간만 필터링 하여 보겠습니다.

필터링 명령어 뒤에 " | findstr /R ^Creation" 를 입력하면 해당 동영상 파일의 생성시간만 추출할 수 있습니다.

 

이 생성시간을 변수로 입력받아 문자열 파싱(Parsing)을 하면 원하는 형식으로 파일명을 지정할 수 있습니다.

여기서 부터 어려운 얘기가 시작되죠?

간략하게 아래 스크립트를 참고하여 복사 붙여넣기 하면 됩니다.

 

 

  파일 이름 변경을 위한 PowerShell 스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 영상 파일 경로로 이동
cd C:\Users\nick\Desktop\2020_01
 
# 현재 경로 확보
$pwd = Get-Location | foreach {$_.Path}
 
# 파일명 확보
$movie = "IMG_8638.MOV"
 
# 파일 절대 경로
$file_abs = $pwd+'\'+$movie
 
# 파일 확장자
$ext = [System.IO.Path]::GetExtension($movie)
 
# 파일 생성일 확보
$c_date = C:\Users\nick\Desktop\exiftool.exe $file_abs | findstr /R ^Creation
 
# 파일명 형식 지정
$name = $c_date.Substring(34,19).replace(':', '').replace(' ','_')
 
# 파일 이름 수정 부분
$new_name = $name+$ext
Rename-Item -Path $file_abs -NewName $new_name
 
# 바뀐 파일 출력
echo $new_name
cs

 

위 스크립트를 실행해보겠습니다.

 

 

  Step 3. 스크립트 실행

 

먼저 스크립트를 실행하기 전에 파일명을 확인해 보면 IMG_8638.MOV 입니다.

 

 

위 공유해드린 스크립트를 실행해보겠습니다.

윈도우 파워쉘을 실행하여 위 스크립트를 입력합니다.

 

스크립트 실행 결과

다음과 같이 파일이름이 "<생성날짜>_<생성시간>.MOV" 형식으로 변경되었습니다.

 

 

다음 포스팅에서는 이 스크립트를 이용하여 특정 폴더 내에 있는 영상 파일들을

한꺼번에 바꿀 수 있는 자동화 된 스크립트를 공유드리겠습니다.

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

반응형

+ Recent posts