반응형

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

아이폰 이미지 같은 경우 사진을 백업하게 되면 아래와 같이 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

 

 

반응형
반응형

 

도커를 처음 배우기 시작할 때 꼭 필요한 기본 명령어를 한페이지 분량으로 정리하였습니다.

아래 정리된 명령어 모음은 도커를 운영할 때 사용하시면 분명 도움이 될겁니다.

 

 

 

  현재 내가 가진 이미지 출력

1
docker images
cs

 

  이미지 다운로드 (hub에서 검색하여 이름 파악)

1
docker pull <이미지이름>:<tag>
cs

ex1) docker pull httpd
ex2) docker pull ubuntu:18.04

 

 

  이미지를 실행하여 컨테이너 만들기

1
2
# 기본 명령어
docker run <이미지이름>
cs

ex) docker run httpd

 

1
2
# 이름지정 옵션
docker run --name <컨테이너 이름> <이미지>
cs

ex) docker run --name ws1 httpd

 

1
2
# 포트포워딩 옵션
docker run -p <host포트>:<컨테이너포트> <이미지>
cs

ex) docker run -p 80:80 httpd

 

1
2
#호스트<->컨테이너간 파일시스템 연결 옵션
docker run -p 8080:80 -v <호스트폴더>:<컨테이너폴더> <이미지>
cs

ex) docker run -p 8080:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs httpd

 

1
2
# 컨테이너 만들고 접속하기 ( /bin/bash 실행)
docker run --name <컨테이너 이름> -it <이미지>:<tag> /bin/bash
cs

ex) docker run --name ubuntu_18.04 -it ubuntu:18.04 /bin/bash

 

 

  실행중인 컨테이너 중지

1
2
docker stop <컨테이너 이름>
docker stop <컨테이너 ID>
cs

 

  정지된 컨테이너 재시작

1
2
docker start <컨테이너 이름>
docker start <컨테이너 ID>
cs

 

  컨테이너에 대한 log 출력하기

1
2
docker logs <컨테이너 이름>
docker logs -f <컨테이너 이름>          #실시간 로그보기
cs

 

  컨테이너에 삭제

1
2
docker rm <컨테이너 이름>        #중지 후 삭제할 수 있음
docker rm --force <컨테이너 이름>        #중지않아도 강제 삭제
cs

 

  이미지 삭제

1
docker rmi <이미지명>
cs

 

  실행중인 컨테이너 정보확인

1
2
docker ps
docker ps -a          #중지된 컨테이너까지 모두 확인할 때
cs

 

  커맨드라인 실행

1
docker exec <컨테이너명> <실행할 명령어>
cs

ex) docker exec ws1 pwd

 

1
2
#컨테이너로 접속하여 지속적으로 명령어를 쳐야할때
docker exec -it <컨테이너명> <shell종류>
cs

ex) docker exec -it ws1 /bin/sh

 

 

  Dockerfile을 통한 이미지 생성

1
docker build -t <생성할 이미지명>:<태그명> <Dockerfile위치>
cs

ex) docker build -t echotest:1.0 .\

 

 

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

caul334@gmail.com

 

 

반응형

+ Recent posts