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)
|