728x90

 

파이썬을 사용할 때, 특정 폴더 내의 파일 리스트를 가져와야 할 때가 있다.

 

나같은 경우는 pytorch dataloader를 구성할 때 주로 사용한다.

 

 

'/mnt/ssd0/CHC/Project/ICT_Admin/DeepLabV3Plus-Pytorch/datasets/data/traffic/test_data_20210127/다발_서울경인_test_data/다발지역_서울'

 

위와 같은 경로 아래의 하위 폴더 내의 jpg파일을 리스트로 가지고 오고 싶다고 해보자

 

하위폴더 리스트의 경우 다음과 같은 명령어로 가져올 수 있다.

 

glob("./*/")

 

결과는 아래와 같다.

 

'./1898/', './6838/', './255/', './8218/', './5145/', './5232/', './6835/', './4150/', './5130/', './6705/', './4116/', './6817/', './5194/', './1906/', './6843/', './4106/', './5020/', './1846/', './341/', './1884/', './9451/', './235/', './6746/', './4064/', './237/', './301/', './1865/', './4146/', './8112/', './8100/', './8111/', './9474/', './8223/', './9464/', './6724/', './5165/', './4137/', './4113/', './5120/', './6800/', './6861/', './357/', './8201/', './6856/', './6762/', './1808/', './8174/', './5199/', './5128/', './8136/', './6798/', './8197/', './9297/', './1832/', './3994/', './9388/', './4013/', './4052/', './5004/', './1829/', './8202/', './4151/', './328/', './6747/', './8115/', './5124/', './9419/', './38/', './2840/', './9381/', './5144/', './8211/', './9431/', './5138/', './4092/', './9391/', './6742/', './8187/', './1844/', './6848/', './6748/', './4134/', './6808/', './5149/', './4085/', './2825/', './36/', './1892/', './9450/', './337/', './5224/', './6819/', './5147/', './302/', './9397/', './321/', './9400/', './5231/', './9374/', './6822/', './5262/', './1886/', './5160/', './4109/', './50/', './1819/', './9437/', './4036/', './6812/', './4129/', './9457/', './8145/', './6613/', './9402/', './6778/', './9445/', './267/', './6851/', './5143/', './5121/', './5220/', './58/', './5169/', './2822/', './6714/', './4007/', './6847/', './4059/', './6745/', './6731/', './9384/', './5247/', './8173/', './4600/', './6792/', './1847/', './6829/', './6719/', './6730/', './6751/', './5198/', './4111/', './8159/', './1895/', './8188/', './9442/', './1890/', './353/', './9385/', './4067/', './295/', './7990/', './4114/', './1894/', './8210/', './5015/', './1863/', './9293/', './5218/', './8206/']

 

그러면 이 하위폴더 아래의 jpg 파일을 가지고 오고 싶으면 어떻게 하면 될까?

 

다음과 같이 하면 된다.

 

glob("./*/*.jpg")

 

결과는 다음과 같다.

 

'./1863/gsv_1.jpg', './1863/gsv_2.jpg', './9293/gsv_3.jpg', './9293/gsv_0.jpg', './9293/gsv_1.jpg', './9293/gsv_2.jpg', './5218/gsv_3.jpg', './5218/gsv_0.jpg', './5218/gsv_1.jpg', './5218/gsv_2.jpg', './8206/gsv_3.jpg', './8206/gsv_0.jpg', './8206/gsv_1.jpg', './8206/gsv_2.jpg']

 

그러면 만약에 각 하위폴더내에 또다른 하위 폴더가 있고, 그 아래에 있는 image파일까지 가지고 오고 싶을때는 어떻게 하면 될까?

 

다음과 같은 명령어를 사용하면 된다.

 

glob("./**/*.jpg", recursive=True)

 

여기서 '**'은 recursive의 의미로서 glob("./*/*.jpg") 명령어를 하위폴더에서 계속해서 반복해서 시행한다고 생각하면 된다. (recursive=True를 넣어야 함)

 

관련하여 설명이 있는 사이트는 아래와 같다.

 

 

https://resumetmachine.tistory.com/entry/%ED%8F%B4%EB%8D%94%EC%99%80-%ED%95%98%EC%9C%84%ED%8F%B4%EB%8D%94-%ED%8C%8C%EC%9D%BC-%EB%AA%A9%EB%A1%9D-%EB%A7%8C%EB%93%A4%EA%B8%B0-globglob

 

[Python] 파이썬으로 폴더와 하위폴더 파일 목록 만들기 glob.glob()

파일을 다루는 파이썬 프로그램 코딩시, 특정 폴더와 그 하위 폴더에 있는 파일 목록이 필요할 때가 있습니다. glob 모듈의 glob 함수는 제시된 조건에 맞추어 파일명을 구하여 리스트 형식으로 만

resumetmachine.tistory.com

 

https://velog.io/@k7120792/Glob-%ED%8C%A8%ED%84%B4%EA%B3%BC-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D

 

Glob 패턴이 뭘까?

서론 타입스크립트의 tsconfig, tslint 설정과 웹팩 설정을 직접 해보면서 이게 도대체 뭘 나타내는 코드일까..?라고 생각하게 만드는 것들이 있었습니다. 그 중에 하나가 바로 글롭 패턴(Glob Pattern)

velog.io

 

728x90

+ Recent posts