Работа с файлами, циклы 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])
основная идея -
- идем в цикле от 0 до размера списка
len(files)с шагом 3 -range(0, len(files), 3) - на каждом этапе цикла от списка с текущей позиции отрезаем кусочек размером 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)