python Как я могу перебирать файлы в заданном каталоге?



3 Answers

Вы можете попробовать использовать модуль glob

import glob

for filepath in glob.iglob('my_dir/*.asm'):
    print(filepath)
python iterator directory

Мне нужно перебирать все .asm файлы внутри заданного каталога и выполнять некоторые действия над ними.

Как это можно сделать эффективным образом?




Python 3.4 и более поздние pathlib предлагают pathlib в стандартной библиотеке. Вы можете сделать:

from pathlib import Path

asm_pths = [pth for pth in Path.cwd().iterdir()
            if pth.suffix == '.asm']

Или, если вам не нравятся перечни:

asm_paths = []
for pth in Path.cwd().iterdir():
    if pth.suffix == '.asm':
        asm_pths.append(pth)

Объекты Path могут быть легко преобразованы в строки.




Вот как я перебираю файлы в Python:

import os

path = 'the/name/of/your/path'

folder = os.fsencode(path)

filenames = []

for file in os.listdir(folder):
    filename = os.fsdecode(file)
    if filename.endswith( ('.jpeg', '.png', '.gif') ): # whatever file types you're using...
        filenames.append(filename)

filenames.sort() # now you have the filenames and can do something with them

НЕТ ЭТИ ТЕХНИКИ ГАРАНТИЯ ЛЮБОГО ИСПОЛЬЗОВАНИЯ ИТЕРАЦИИ

Да, супер непредсказуемо. Обратите внимание, что я сортирую имена файлов, что важно, если порядок файлов имеет значение, то есть для видеокадров или сбора данных, зависящих от времени. Обязательно поместите индексы в свои имена!




Related