Работа с файлами, циклы python

Есть следующий код:

import os
path = r'C:\filename'
files = os.listdir(path)

for file in files:
    print(file)

Допустим у нас в папке 9 файлов с именами '1','2','3','4','5','6','7','8','9'. Каким образом нужно написать цикл, чтобы за цикл он печатал по три файла? В первом цикле на выходе: 1 2 3, во втором 4,5,6, в третьем 7,8,9


Хорошо, спасибо, но у меня все равно не получилось перенести эту идею на мой код. Смотри, мне нужно импортировать 3 последовательных видео из папки в видеоредактор. Есть следующий код:

import os
from pywinauto import keyboard
path = r'C:\action_in_past'
files = os.listdir(path)

for file in range(0, len(files), 3):
     # Вводим в строку импорта 3 разных файла 

     keyboard.send_keys(file)
     keyboard.send_keys(file)
     keyboard.send_keys(file)

Я надеюсь, ты понял мою идею


Ответы (1 шт):

Автор решения: Zhihar

так требуется?

files = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

for index in range(0, len(files), 3):
    print(files[index:index + 3])

основная идея -

  1. идем в цикле от 0 до размера списка len(files) с шагом 3 - range(0, len(files), 3)
  2. на каждом этапе цикла от списка с текущей позиции отрезаем кусочек размером 3, т.е. делаем срез списка files[index:index + 3]

таким образом получаются списки от 0 до 3 позиции, от 3 до 6, от 6 до 9, от 9 до ... и т.д.

P.S.

files = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

for index in range(0, len(files), 3):
    selected_files = files[index:index + 3]

    # обработать файлы
    for file in selected_files:
         keyboard.send_keys(file)

    # сделать что-то еще

    # удалить файлы
    for file in selected_files:
        os.remove(file)
→ Ссылка