import os import random import shutil # Задаются пути к папкам и файлам source_directory = "/var/data" destination_directory = "/var/result" destination_file = os.path.join(destination_directory, "data.txt") # Создание случайных файлов для работы системы, так как заранее файлы нерационально создавать def generate_random_files(directory): # Создание необходимых папок, если они не существуют, если существуют, то пропускаем os.makedirs(directory, exist_ok=True) # Будет от 5 до 10 файлов num_files = random.randint(5, 10) for i in range(1, num_files + 1): file_name = f"file_{i}.txt" file_path = os.path.join(directory, file_name) # Будет от 1 до 100 чисел со значением от 1 до 100 num_numbers = random.randint(1, 100) numbers = [str(random.randint(1, 100)) for _ in range(num_numbers)] # Числа сохраняются в файл каждое на новой строке with open(file_path, 'w') as f: f.write("\n".join(numbers)) print(f"Создано {num_files} файлов в директории {directory}.") # Находится файл с самым большим количеством строк и копируется в папку назначения def find_and_copy_longest_file(source_dir, destination_file): if not os.path.exists(source_dir) or not os.path.isdir(source_dir): return print ("Папки с данными не существует. Завершение выполнения") longest_file = None longest_lines = 0 for filename in os.listdir(source_dir): filepath = os.path.join(source_dir, filename) with open(filepath, mode="r") as file: length = len(file.readlines()) if length > longest_lines: longest_file = filepath longest_lines = length if longest_file is None: return print("Папка с данными пуста. Завершение выполнения") shutil.copy(longest_file, destination_file) print(f"Файл \"{longest_file}\" с количеством строк {longest_lines} скопирован в {destination_file}") if __name__ == "__main__": generate_random_files(source_directory) find_and_copy_longest_file(source_directory, destination_file)