/fileRenamer

정규식을 이용하여 파일의 이름을 일괄적으로 바꿀 수 있게 만든 프로그램

Primary LanguagePythonMIT LicenseMIT

fileRenamer

fileRenamer는 수행평가를 위해 만든 파일 이름 변경 프로그램입니다. 정규식을 이용하여 파일을 검색하고 파일의 이름을 바꿀 수 있습니다. 이 프로그램은 비슷한 포맷으로 만들어져 있는 파일들을 새로운 포맷으로 바꾸는 데 유용합니다.

사용법

아래의 모든 내용은 2023-04-23 버전을 기준으로 합니다. 또한 작업을 진행할 폴더는 이 폴더와 같다고 가정합니다. (해당 폴더의 파일들은 실제론 텅 비어있는 파일들 입니다)

1. 작업할 폴더를 설정합니다.

가장 먼저 폴더 경로를 입력하라는 메세지가 뜨게 됩니다. 현재 파이썬 파일이 실행 중인 경로(os.getcwd)를 기준으로 상대 경로를 사용하시거나 절대 경로를 사용하셔도 됩니다. 아래는 예시입니다.

더 경로를 입력하세요(기준은 <폴더 경로>): ./example
폴더에 있는 파일의 수: 5
1. 20230422.jpg
2. 20230422.txt
3. 20230423.jpg
4. 20230424.jpg
5. 20230425.jpg
이 폴더가 맞습니까? (Y/N): Y

2. 검색할 정규식을 입력합니다.

정규식 문법은...다 아시겠죠? 그룹핑을 사용해서 변수를 추출할 수 있습니다. 이 변수를 이용하여 이후 이름을 재설정하는 단계에 사용하실 수 있습니다. 아래는 예시입니다.

[검색 패턴 문법]
1. 기존 파일 이름에서 찾은 변수를 사용할때는 (?P<변수명>패턴)으로 사용합니다.
2. 패턴은 기본적으로 정규식을 사용합니다.
- [a-z] : a부터 z까지의 문자
- \d{글자수}, \w{글자수}, \s{글자수} : 숫자, 문자, 공백으로 이루어진 글자수만큼의 문자
- 더 많은 패턴은 https://docs.python.org/ko/3/library/re.html 에서 확인하세요.

패턴을 입력하세요: (?P<year>\d{4})(?P<month>\d{2})(?P<day>\d{2}).jpg 
패턴에 일치하는 파일의 수: 4
1. 20230422.jpg | {'year': '2023', 'month': '04', 'day': '22'}
2. 20230423.jpg | {'year': '2023', 'month': '04', 'day': '23'}
3. 20230424.jpg | {'year': '2023', 'month': '04', 'day': '24'}
4. 20230425.jpg | {'year': '2023', 'month': '04', 'day': '25'}
이 패턴이 맞습니까? (Y/N): Y

3. 변경할 파일 경로

이름을 바꾸며 위치를 이용하고 싶으시다면 경로를 바꿀 수 있습니다. 마찬가지로 현재 파이썬이 실행되고 있는 위치를 기준으로 상대경로를 사용하시거나 절대경로를 사용하실 수 있습니다. 아무것도 입력하지 않으시면 위치를 바꾸지 않는 것으로 간주됩니다.

새로운 폴더 경로를 입력하세요(기준은 <폴더 경로>):
이미 존재하는 폴더입니다.
이 폴더에 파일을 이동하시겠습니까? (Y/N): Y

4. 변경할 이름을 설정합니다.

2번 단계에서 추출한 변수를 사용하려면 {변수명}으로 넣으면 됩니다. <>안에는 파이썬 코드를 넣어 실행시킬 수 있습니다. Counter라는 변수가 자동으로 추가되는 데 이는 파일의 순서에 따라 1부터 시작하여 1씩 증가하는 자동으로 생성되는 변수입니다.

주의! 이 프로그램에는 되돌리기 기능이 없습니다. 꼭 미리보기를 이용하여 문제가 없는지 확인한 이후에 진행하세요 문제 생겨도 제 탓은 아닙니다

수정사항! Ver.20230424 이후 기초적인 수준의 복구 기능은 존재합니다. 하지만 이는 파일이 완전히 망가져버린 경우에는 복구가 불가능합니다

[이름 설정 패턴 문법]
1. 기존 파일 이름에서 찾은 변수를 사용할때는 {변수명}으로 사용합니다.
2. <(파이썬 코드)>는 그 자리에 그 코드의 실행 결과를 넣습니다. 이 코드 안에도 변수를 넣을 수 있습니다.
- Counter는 1부터 시작하는 특수한 변수입니다. 변수 Counter는 파일의 순서를 만들 때 사용가능합니다.

새로운 패턴을 입력하세요: <Counter>({year}-{month}-{day}).jpg
패턴에 일치하는 파일의 수: 4
1. ['20230422.jpg', {'year': '2023', 'month': '04', 'day': '22', 'Counter': 1}] => 1(2023-04-22).jpg
2. ['20230423.jpg', {'year': '2023', 'month': '04', 'day': '23', 'Counter': 2}] => 2(2023-04-23).jpg
3. ['20230424.jpg', {'year': '2023', 'month': '04', 'day': '24', 'Counter': 3}] => 3(2023-04-24).jpg
4. ['20230425.jpg', {'year': '2023', 'month': '04', 'day': '25', 'Counter': 4}] => 4(2023-04-25).jpg
주의! 한번 실행된 작업은 되돌릴 수 없습니다
이 패턴이 맞습니까? (Y/N): Y

이후 작업 완료되었습니다. 라는 메세지가 나타나면 파일들의 이름이 변경된 상태임을 확인하실 수 있습니다.

더보기

수행 평가로 한거라 문제가 많습니다 그래도 이슈 남겨주시거나 seolchaehwan@naver.com으로 이메일 보내주시면 오류 수정/신기능 추가 진행하도록 하겠습니다.