본문 바로가기
Python/Python FAQ

Python 주어진 디렉토리에서 파일을 반복하는 방법은 무엇인가요?, How can I iterate over files in a given directory?

by 베타코드 2023. 6. 27.
반응형

질문


주어진 디렉토리 내에서 모든 .asm 파일을 반복하고 일부 작업을 수행해야합니다.

효율적인 방법으로 이를 어떻게 수행할 수 있을까요?


답변


위의 답변을 Python 3.6 버전으로, os를 사용하여 디렉토리 경로를 str 객체로 가정한 경우:

import os

directory = os.fsencode(directory_in_str)
    
for file in os.listdir(directory):
     filename = os.fsdecode(file)
     if filename.endswith(".asm") or filename.endswith(".py"): 
         # print(os.path.join(directory, filename))
         continue
     else:
         continue

또는 pathlib을 사용하여 재귀적으로:

from pathlib import Path

pathlist = Path(directory_in_str).glob('**/*.asm')
for path in pathlist:
     # because path is object not string
     path_in_str = str(path)
     # print(path_in_str)
  • rglob('*.asm')으로 glob('**/*.asm')을 대체하기 위해 rglob을 사용하세요.
    • 이는 주어진 상대 패턴 앞에 '**/'를 추가하여 Path.glob()을 호출하는 것과 같습니다:
from pathlib import Path

pathlist = Path(directory_in_str).rglob('*.asm')
for path in pathlist:
     # because path is object not string
     path_in_str = str(path)
     # print(path_in_str)

원래 답변:

import os

for filename in os.listdir("/path/to/dir/"):
    if filename.endswith(".asm") or filename.endswith(".py"): 
         # print(os.path.join(directory, filename))
        continue
    else:
        continue
반응형

댓글