Python의 디렉터리 및 하위 디렉터리에 있는 모든 파일 나열
-
os.walk()
를 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열 -
listdir()
을 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열 -
glob
을 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열
Python은 디렉토리 및 하위 디렉토리에 있는 파일 목록에 액세스하는 다양한 방법을 제공합니다. 이 가이드는 os.walk()
, listdir()
, glob
에 대해 설명합니다.
os.walk()
를 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열
Python의 os
모듈은 운영 체제와 상호 작용하는 수단을 제공합니다. 파일 시스템을 처리하는 많은 내장 기능이 있습니다.
이 모듈을 사용하여 디렉토리를 가져오고, 만들고, 제거하고 변경할 수 있습니다. walk()
는 하향식 또는 상향식으로 이동하여 디렉토리 트리에서 파일 이름을 생성하는 재귀적 방법입니다.
다음 코드에서는 MyFolder
의 디렉토리와 하위 디렉토리에 있는 파일을 표시했습니다. 우리의 경우 이 폴더는 Python 환경의 홈 디렉토리에 있습니다.
예제 코드:
import os
root = "MyFolder"
for path, subdirs, files in os.walk(root):
for name in files:
print(os.path.join(path, name))
출력:
MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
listdir()
을 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열
다음 코드에서는 walk
메서드를 사용하지 않고 디렉토리 트리를 탐색하고 해당 파일과 하위 파일에 액세스합니다. 루트 폴더 MyFolder
를 시작점으로 지정했습니다.
그런 다음 listdir()
을 사용하여 해당 폴더의 디렉토리와 하위 디렉토리에 액세스하고 항목에 저장했습니다. 항목 이름을 이전 경로와 연결하고 isdir()
메서드를 사용하여 디렉터리인지 확인했습니다.
그렇다면 해당 디렉토리를 더 검색하고 동일한 절차를 적용합니다. 파일명인 경우 이전 경로에 파일명을 추가하여 표시했습니다.
예제 코드:
import os
root = "MyFolder"
files = []
walk = [root]
while walk:
folder = walk.pop(0) + "/"
items = os.listdir(folder) # items = folders + files
for i in items:
i = folder + i
(walk if os.path.isdir(i) else files).append(i)
print(files)
출력:
['MyFolder/text_file1.txt', 'MyFolder/text_file2.txt', 'MyFolder/SubFolder1/text_file3.txt', 'MyFolder/SubFolder1/text_file4.txt']
glob
을 사용하여 Python의 디렉토리 및 하위 디렉토리에 있는 모든 파일 나열
glob
은 global
을 나타내는 Python의 내장 모듈입니다. 이 모듈은 이름과 확장자가 특정 패턴과 일치하는 모든 파일 경로를 반환합니다.
여기에서는 확장자가 있는 모든 파일 이름을 나타내는 *.*
를 사용했습니다. glob.glob()
을 사용하여 디렉토리 또는 하위 디렉토리 내에서 재귀적으로 파일을 찾습니다.
**
패턴은 recursive가 True
로 설정된 경우 모든 파일과 0개 이상의 폴더 및 하위 디렉토리와 일치합니다.
예제 코드:
import glob
path = "MyFolder\**\*.*"
for file in glob.glob(path, recursive=True):
print(file)
출력:
MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn