1. 함수 사용법
아래와 같은 포멧을 사용하면 된다.
이 때, a는 보통 integer형을 입력한다.
여기서, 0:02의 2는 String형의 결과값의 길이를 뜻하고, 결과는 String형으로 출력된다.
아래는 기본적인 예시이다.
| a = 1 '{0:02}'.format(a) = '01' b = 3 '{0:03}'.format(b) = '003' c = 4 '{0:04}'.format(c) = '0003' | cs |
2. 사용처
주 사용처는 Training Dataset을 저장 및 불러오기할 때 사용한다.
인터넷에 배포되고 있는 Dataset들은 0001.png, 0002.png ... 이런 식으로 저장되어 있는 경우가 많고,
이 경우 데이터들을 for문을 통해 쉽게 불러올 수 있다.
반대로, 내가 데이터셋을 생성하는 경우에도 같은 형식으로 만드는 것이 유리한데,
그 이유는 Data Parsing하기가 쉬워지기 때문이다.
파일명이나 경로명이 어떤 정보를 가지고 있는 경우, 경로에 포함된 정보들로 Data Parsing을 할 수 있고,
이 때 경로의 길이는 고정되어 있는 게 편하다.
(Data Parsing : 원본 데이터를 원하는 기준으로 나눠서 저장하는 것)
간단한 예시를 들면
/home/male/M0135.png 와 /home/female/F1234.png라는 데이터셋이 있다고 생각하자.
M은 남자, F는 여자라는 정보를 가지고 있다.
이제, 성별을 기준으로 나누고 싶어 'M'과 'F'에 접근하려면 path[len(path)-9]으로 접근할 수 있다.
하지만, 0을 채우지 않은 경우는 경로가 /home/male/M135.png 와 /home/female/F1234.png가 될 것이다.
이 경우, M과 F가 같은 위치에 오지 않으므로, 데이터를 기계적으로 다루기가 어려워진다.
결론은 주로 파일의 경로명 설정에 사용된다는 것이다.
물론, 다른 용도로도 많이 사용될 것이다.
-----------------------------------------------------------------------------------------------
여담으로, input을 integer가 아니라 다른 형을 넣으면 어떨까 궁금해서 다양하게 실험해봤다.
| a = -1 '{0:05}'.format(a) = '-0001' b = 'abc' '{0:05}'.format(b) --> error c = 1.53 '{0:05}'.format(c) = '01.53' | cs |
결론은, 마이너스 부호나 소수점을 하나의 character로 보고 고정된 길이의 결과를 출력한다.
혹시 문자열도 되나 싶어서 해봤는데 역시나 안된다.
코드에 적진 않았지만 배열 입력도 안된다.