사용자 도구

사이트 도구


project:pythoncookbook

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
project:pythoncookbook [2012/12/19 23:28] – [여러 폴더를 각각의 이름으로 압축하기] 127.0.0.1project:pythoncookbook [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +====== 묻지도 따지지도 말고! 파이썬 요리책 ======
 +요리책은 요리에 쓰는 거지만, 은근히 프로그래밍에도 많이 사용됩니다. 묻지도 따지지도 않고 패턴화된 일을 할 때가 있습니다. 그런데 그것이 가끔씩 있는 일이다보니 자주 잊어버리는 때도 많습니다. 이럴 때 요리 레시피를 적듯 '코드 레시피'를 적어 두면 편리할 것입니다.
  
 +여기는 이러한 코드 레시피를 모아둔 파이썬 요리책 문서입니다.
 +
 +===== 파일과 디렉토리에 대한 관리 =====
 +
 +==== 디지털 카메라 사진들을 연/월별로 분류하기 ====
 +디지털 카메라의 각각 파일에는 보통 'Exif 정보'란 것이 있습니다. 이 정보에는 사진에 대한 '메타데이터(metadata)'를 담고 있습니다.메타데이터는 어떤 자료를 설명하기 위해 추가되는 부가적인 자료들을 말합니다. 디지털 사진을 찍게 되면 보통 사진의 영상외에도 이 사진이 언제 (혹은 어디서 까지도) 어떻게 찍혔는지에 대한 자료들이 같이 이미지 파일에 저장됩니다. 이런 자료들을 저장하기 위한 포맷을 일컬어 Exif라고 합니다.
 +
 +이 Exif 자료를 이용한다면 한 폴더에 왕창 쌓여있는 사진들을 연도별로, 월별로 분류할 수 있습니다. 저는 모 클라우드 저장소에 스마트폰을 이용해 찍은 사진을 백업했는데, 알아서 월별로 사진을 구분해 폴더별로 정리하는 것을 보았습니다. 나름 정리가 되어 괜찮다고 생각했는데요, 파이썬을 이용해 이 기능을 흉내내 보겠습니다.
 +
 +프로그램의 동작 얼개는 간단합니다.
 +  - 사진이 있는 디렉토리를 입력으로 줍니다. 하위 디렉토리는 존재하지 않고 편평하게 사진 파일만 수두룩하게 있다고 가정합니다. 그리고 사진에는 모두 Exif 정보가 있다고 가정합니다. 만일 정보가 없다면 건너뜁니다.
 +  - 각각의 사진 파일의 Exif 정보 중, 사진이 촬영된 시간을 읽어냅니다.
 +  - 사진이 촬영된 연도와 월을 추출해 그 연도의 그 월 폴더를 만듭니다. 이미 만들어져 있으면 관계없습니다.
 +  - 파일을 해당 폴더로 이동합니다.
 +  - 모든 사진 파일에 대해 작업을 반복합니다.
 +
 +==== 파일 내부의 특정 문자 패턴 치환하기 ====
 +어떤 분이 제게 파일의 내부의 특정 단어를 다른 단어로 바꾸는 프로그램에 관한 질문으로 이메일로 보내 주셨습니다.
 +이런 프로그램은 사람마다 조금 다르겠지만 대개 평소에 쓸 일은 많지 않아 보입니다. 하지만 왠지 있으면 좋을 것 같습니다.
 +왠지 쓸모없지만 있어도 나쁘지 않은 프로그램, 딱 제 스타일입니다 :) 만들어 보도록 하겠습니다.
 +
 +==== 여러 폴더를 각각의 이름으로 압축하기 ====
 +파이썬으로 압축을 할 수도 있고 다시 풀 수도 있습니다. 사실 탐색기에서 마우스 버튼으로 클릭하면 한 방에 해결되는 일인데, 굳이 파이썬을 쓸 일은 없죠.
 +
 +하지만 제게 이런 경우가 있었더랬습니다. 압축 파일을 풀었는데 폴더가 수십개였습니다. 폴더는 어떤 규칙을 가진 연속적인 이름을 가져야 하는데, 몇몇 폴더에 실수가 있어 이름으로 정렬을 했을 때 제대로 정렬이 되지 않았습니다. 어쨌든 폴더 이름이 잘못된 몇 개 정도는 쉽사리 수정할 수 있었습니다.
 +
 +하지만 저는 폴더별로 하나씩 압축 파일을 만들고 싶었습니다. 그러려니 일일이 폴더마다 오른쪽 마우스를 클릭해 압축 메뉴를 눌러 압축을 해야 하더군요. 꽤 번거로웠지요. 다 정해진 규칙이 있는데 규칙대로 하면 한 번에 프로그래밍을 할 수 있었을 텐데 하고 고민했던 적이 있었습니다. 파이썬을 몰랐을 때 말이죠. 이제는 만들어 봅니다. 한 폴더 내 여러 폴더를 각각의 이름으로 압축하기!
 +
 +===== 웹 관련 =====
 +==== 인터넷 익스플로러 뒤에서 조종하기 ====
 +매번 웹브라우저로 정해진 작업을 수행하는 분 있으신가요? 희소식을 전해 드립니다. 파이썬을 조금만 배워보세요! 그 지루한 작업을 한방에 해결해 드릴 수도 있습니다. 우선 인터넷 익스플로러부터 조종해볼까요?
 +
 +
 +===== 멋진 파이썬 예제들 =====
 +  * http://code.activestate.com/recipes/langs/python/
 +  * http://coreapython.hosting.paran.com/howto/sebsauvage_net-%20Snyppets%20-%20Python%20snippets.htm

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki