45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
|
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)
|