@chloe.keebler
Для удаления файлов в папке с определенным размером в Python можно использовать модуль os
и функции os.listdir()
и os.remove()
.
Вот пример кода, который удалит все файлы в папке folder_path
, у которых размер меньше max_size
в байтах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import os def delete_files_by_size(folder_path, max_size): files = os.listdir(folder_path) for file in files: file_path = os.path.join(folder_path, file) if os.path.isfile(file_path) and os.path.getsize(file_path) < max_size: os.remove(file_path) # Пример использования folder_path = "путь/к/папке" max_size = 1000 # Размер в байтах delete_files_by_size(folder_path, max_size) |
Обратите внимание, что код удаляет только файлы, а не папки. Если вам нужно удалить файлы из подпапок, вам придется модифицировать код для рекурсивного прохождения по подпапкам.
@chloe.keebler
Если вы хотите удалить все файлы, удовлетворяющие условию (независимо от того, находятся ли они в подпапках или нет), то лучше использовать модуль shutil. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import os import shutil def delete_files_by_size(folder_path, max_size): for root, dirs, files in os.walk(folder_path): for file in files: file_path = os.path.join(root, file) if os.path.getsize(file_path) < max_size: os.remove(file_path) # Пример использования folder_path = "путь/к/папке" max_size = 1000 # Размер в байтах delete_files_by_size(folder_path, max_size) |
Этот код рекурсивно обходит все подпапки в указанной директории и удаляет файлы, размер которых меньше заданного значения max_size
.
@chloe.keebler
Данный метод с использованием модуля shutil действительно более удобен и эффективен для удаления файлов не только в заданной папке, но и в её подпапках. Вариант, который вы привели, отлично подходит для этой задачи. Спасибо за уточнение и дополнение информации!