DAS_2024_1/klyushenkova_ksenia_lab_2/w-1/worker-1.py

45 lines
1.6 KiB
Python
Raw Normal View History

2024-12-20 00:24:54 +04:00
import os
import shutil
# Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
# Определяем пути
source_dir = '/var/data'
target_file = '/var/result/data.txt'
def find_largest_file(directory):
largest_file = None
max_size = 0
# Перебираем все файлы в каталоге
for root, _, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
try:
size = os.path.getsize(file_path)
if size > max_size:
max_size = size
largest_file = file_path
except OSError as e:
print(f"Ошибка при обработке файла {file_path}: {e}")
return largest_file
def move_largest_file_to_target(source_dir, target_file):
largest_file = find_largest_file(source_dir)
if not largest_file:
print("В каталоге нет файлов.")
return
try:
# Создаём директорию для файла, если она не существует
os.makedirs(os.path.dirname(target_file), exist_ok=True)
# Перемещаем содержимое самого большого файла
shutil.copyfile(largest_file, target_file)
print(f"Самый большой файл {largest_file} был перемещён в {target_file}.")
except OSError as e:
print(f"Ошибка при перемещении файла: {e}")
move_largest_file_to_target(source_dir, target_file)