반응형
질문
주어진 디렉토리 내에서 모든 .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
반응형
댓글