본문 바로가기

code/python

[python] 파이썬에서 glob.glob()로 가져올 때 sort 정렬 하기

TTS 학습 중,
Dimensions이 분명 동일한 것 같은데 자꾸 다르다고 에러가 나서 확인해보니 정렬의 문제였다.
[1, 3, 4] 와 [4, 1, 3] 은 동일하지 않은 것 처럼?

 

data_dir = './data'
mel_list = glob.glob(os.path.join(data_dir + '/mel', '*.npy'))
spec_list = glob.glob(os.path.join(data_dir + '/spec', '*.npy'))

glob.glob()함수로 특정 디렉토리로 부터 *npy를 가져올 때 리스트 정렬이 되지 않아 생기는 문제였고,



해결 방법은

data_dir = './data'
mel_list = sorted(glob.glob(os.path.join(data_dir + '/mel', '*.npy')))
spec_list = sorted(glob.glob(os.path.join(data_dir + '/spec', '*.npy')))

glob.glob()sorted()로 감싸주면
리스트가 정렬되면서 에러 없이 잘 작동 했다.

 

 

끝!

 

위의 코드는
https://github.com/chldkato/Tacotron-Korean-Tensorflow2 의 일부이다.