파이썬으로 파일 이름 일괄 변경하는 프로그램 만들기
지난 번, 파일을 정리하다 보니 갑자기 이런 생각이 들었습니다.
'아, 귀찮은데 누가 한꺼번에 이름 좀 정리해줬으면 좋겠다...'
뭐, 물론 이런저런 웹을 찾아 돌아다니다 보면 당연히 그걸 대신해 주는 프로그램들이야 있겠지만, 아무래도 정확히 제가 원하는 일을 해 주는 프로그램을 찾는 건 여러모로 어려움이 따르더라고요.
그래서, 그냥 만들기로 했습니다.
왠지 일이 늘어나는 것 같은 기분이지만, 기분탓이겠죠.
자 그래서.
우선은 정리해야 할 이름이 들어있는 파일에 파이썬 파일을 하나 만들어 주었습니다.
네, 보시다시피, 아무것도 없고 단순히 'Hello!' 만 출력하는 간단한 프로그래밍입니다.
이제 저 왼쪽에 보이는 파일들, 이름 가운데 '_' 가 들어 있어 보기 싫어지는 파일들을 정리해 봅시다.
기본적인 틀부터 만들어 주고...
기본적인 로직은 이렇습니다.
이름을 받고, 그 이름에서 '_' 를 전부 ' ' 로 교체하는 겁니다.
다들 아시겠지만, 대부분의 프로그래밍 언어에는 이를 대신 해주는 함수가 존재합니다.
파이썬에서는 replace()를 사용하면 되죠.
자, 이렇게 하면 함수 하나는 끝났습니다.
...그런데 문제가 있죠.
문자열을 바꾸는 건 편한데, 실제로 파일 이름이 변경되는 건 아니기 때문입니다.
함수를 또 하나 만들어 봅시다. 이번에는 지금 있는 폴더의 파일 이름을 쭉 불러온 다음에, 그걸 지금 만든 함수로 이름을 변경하는 겁니다.
하나하나 뜯어보겠습니다.
우선 os는 파이썬에 있는 라이브러리로, 파일이름의 변경이나 디렉토리 등등을 관리하는데 유용한 라이브러리입니다.
os.getcwd() 는 현재 있는 폴더의 절대주소를 반환하는 함수로, 만약 경로가 입력되지 않았다면 기본적으로 현재 경로에 있는 파일들을 가져오라는 말입니다.
os.listdir()은 해당 디렉토리에 있는 파일들을 리스트로 반환합니다.
그러니 모든 txt 파일과, 지금 이 파이썬 파일마저 저 리스트에 들어가게 되는거죠.
그 다음, os.rename()을 통해 파일의 이름을 변경해 줍니다.
# 참고로, rename의 변경기능을 잘 사용하면 파일을 이동하는 것도 가능해집니다. 시스템상에서 파일의 이름은 경로를 포함하고 있기 때문이죠.
그럼 성공했을까요?
실행해 보면....!
와! 성공했네요!
...사실, 이거 말고도 조금 다양한 기능들이 필요합니다만, 그건 다음 기회에 하도록 하겠습니다.
하고 보니까 이거 하느냐고 파일 정리도 뒷전으로 미뤄뒀었거든요...
정리도 나중에 할까...?