Python에서 natsort 라이브러리를 활용해 텍스트로 된 숫자 정렬하는 방법입니다.
natsort 라이브러리의 natsorted() 메서드를 사용하면 텍스트를 쉽게 정렬할 수 있습니다.
상세 코드와 html 파일도 하단에 첨부합니다.
아래는 os.listdir()로 숫자로 된 파일들을 불러오고 정렬하는 예제입니다.
Parameters
|
Returrns
출처 : https://natsort.readthedocs.io/en/master/api.html#standard-api |
import os
import natsort ## 숫자 정렬용 라이브러리
# 기본 라이브러리가 아니므로 pip install natsort로 설치
order_list = os.listdir('TXT')
# os.listdir() ← 디렉터리에 있는 파일목록 불러오는 ㅁ메소드
# 'TXT' ← 정렬할 대상이 있는 경로(디렉터리)
order_list[:15]
# 정렬상태 확인 결과 Python에서 문자열로 인식해 1-1 → 1-10 순서로 정렬되어 있음
['1-1.txt',
'1-10.txt',
'1-11.txt',
'1-12.txt',
'1-13.txt',
'1-14.txt',
'1-15.txt',
'1-16.txt',
'1-17.txt',
'1-18.txt',
'1-19.txt',
'1-2.txt',
'1-20.txt',
'1-21.txt',
'1-22.txt']
type(order_list[0])
# type 확인 결과 str(문자열)
str
after_order_list = natsort.natsorted(order_list)
# natsort.natsorted() 메소드로 정렬
# natsort.natsorted(seq, key=None, reverse=False, alg=0) 상세 사용방법은 아래 경로에서
# https://natsort.readthedocs.io/en/master/api.html#standard-api
after_order_list
# 정렬결과 일부캡쳐
['1-1.txt',
'1-2.txt',
'1-3.txt',
'1-4.txt',
'1-5.txt',
'1-6.txt',
'1-7.txt',
'1-8.txt',
'1-9.txt',
'1-10.txt',
'1-11.txt',
'1-12.txt',
'1-13.txt',
'1-14.txt',
'1-15.txt',
'1-16.txt',
'1-17.txt',
'1-18.txt',
'1-19.txt',
'1-20.txt',
'1-21.txt',
궁금하신 사항은 댓글 남겨주세요.
감사합니다.
[좌표를 주소로 변환하기(Python)] 카카오, 네이버 API 사용법, 지오코딩(Geocoding) (8) | 2020.03.25 |
---|---|
Python으로 CSV(Comma Separated Values) 파일 읽는 방법 with csv, pandas (0) | 2020.01.23 |
[Python 더블 언더스코어] __repr__ (0) | 2019.12.11 |
Python으로 CSV파일 읽기, 내용 덧붙이기 (3) | 2019.12.06 |
[Python] Iterator를 이용한 while loop (0) | 2019.12.04 |