특정 경로의 파일 목록을 리스트에 저장하는 파이썬 예제 코드입니다.
2021. 12. 27 최초작성
다음 구조의 디렉토리를 생성한 후, 진행했습니다.
첫번째 버전
파일 이름 목록에 경로를 추가합니다.
import os path = './root' for root, dirs, files in os.walk(path): if len(files) > 0: files.sort() for i in range(len(files)): files[i] = root + '/' + files[i] print(files) |
['./root/ab/a/a1', './root/ab/a/a2', './root/ab/a/a3']
['./root/ab/b/b1']
['./root/cd/c/c1', './root/cd/c/c2', './root/cd/c/c3', './root/cd/c/c4']
['./root/cd/d/d1', './root/cd/d/d2', './root/cd/d/d3', './root/cd/d/d4', './root/cd/d/d5']
두번째 버전
마지막 디렉토리 이름을 키로 하여 파일 목록을 딕셔너리에 저장합니다.
import os path = './root' dict = {} for root, dirs, files in os.walk(path): if len(files) > 0: list_dir = root.split('/') print('key ', list_dir[-1]) # print('dirs', dirs) files.sort() for i in range(len(files)): files[i] = root + '/' + files[i] key = list_dir[-1] dict[key] = files print(dict) |
key a
key b
key c
key d
{'a': ['./root/ab/a/a1', './root/ab/a/a2', './root/ab/a/a3'], 'b': ['./root/ab/b/b1'], 'c': ['./root/cd/c/c1', './root/cd/c/c2', './root/cd/c/c3', './root/cd/c/c4'], 'd': ['./root/cd/d/d1', './root/cd/d/d2', './root/cd/d/d3', './root/cd/d/d4', './root/cd/d/d5']}
세번째 버전
폴더 경로를 조합하여 문자열 만들어 딕셔너리의 키로 사용합니다.
import os path = './root' dict = {} for root, dirs, files in os.walk(path): if len(files) > 0: list_dir = root.split('/') str_dir = '-'.join(list_dir[1:]) files.sort() for i in range(len(files)): files[i] = root + '/' + files[i] key = str_dir dict[key] = files print(dict) |
{'root-ab-a': ['./root/ab/a/a1', './root/ab/a/a2', './root/ab/a/a3'], 'root-ab-b': ['./root/ab/b/b1'], 'root-cd-c': ['./root/cd/c/c1', './root/cd/c/c2', './root/cd/c/c3', './root/cd/c/c4'], 'root-cd-d': ['./root/cd/d/d1', './root/cd/d/d2', './root/cd/d/d3', './root/cd/d/d4', './root/cd/d/d5']}
참고
https://stackoverflow.com/a/19017207
'Python > Python 예제 코드' 카테고리의 다른 글
파이썬 리스트에서 특정값의 개수를 세는 방법 (0) | 2022.03.03 |
---|---|
Python 예제 - glob.glob, os.walk 특정 경로에 있는 특정 확장자 파일의 목록을 리스트로 받기 (0) | 2022.01.02 |
파이썬 리스트에 저장된 모든 문자열에 똑같은 문자열을 결합하기 (0) | 2021.12.27 |
Python 예제 - range를 list로 변환 (0) | 2021.12.06 |
파이썬 예제 - 1차원 곡선에서 local maximum, local minimum 위치 찾기 (0) | 2021.12.01 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!