[python] 파일을 숫자 순서대로 나열하기
python 에서 숫자 순서대로 정리하기
숫자 순서대로 나열하는 함수를 생각하면 sort()
함수를 자주 쓰곤한다. 하지만, 이 함수는 앞 숫자 순서대로 나열하기 때문에,
예를 들면,
list = [파일1.jpg , 파일2.jpg, 파일10.jpg, 파일3.jpg, 파일11.jpg]라고 가정하면,
파일1.jpg , 파일10.jpg, 파일11.jpg, 파일2.jpg, 파일3.jpg 순서대로 정렬될 것이다..!
파일1.jpg , 파일2.jpg, 파일3.jpg, 파일10.jpg, 파일11.jpg 이 순서와 같이 정렬하고 싶다면 아래와 같이 함수를 하나 정의해주어야 한다!
import re
def atoi(text):
return int(text) if text.isdigit() else text
def human_order(text):
return [ atoi(c) for c in re.split(r'(\d+)', text) ]
test_list = [파일1.jpg , 파일2.jpg, 파일10.jpg, 파일3.jpg, 파일11.jpg]
test_list.sort(key=human_order)
print(test_list)
# [파일1.jpg , 파일2.jpg, 파일3.jpg, 파일10.jpg, 파일11.jpg]
댓글남기기