forked from Alexey/DAS_2024_1
80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
import os
|
||
import random
|
||
|
||
# Установите полный путь к каталогу, в котором нужно искать самый большой файл.
|
||
CATALOG_PATH = "/var/data"
|
||
|
||
# Полный путь до файла результата.
|
||
RESULT_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:
|
||
# Полный путь к текущему файлу.
|
||
filepath = os.path.join(root, file)
|
||
|
||
try:
|
||
file_size = os.stat(filepath).st_size
|
||
|
||
if file_size > max_size:
|
||
max_size = file_size
|
||
largest_file = (filepath, file_size)
|
||
|
||
except OSError as e:
|
||
print(f"Ошибка при открытии файла '{filepath}': {e}")
|
||
|
||
return largest_file
|
||
|
||
|
||
def copy_file(src, dst):
|
||
"""Копирует содержимое файла src в файл dst."""
|
||
|
||
try:
|
||
with open(dst, "wb") as f_dst, open(src, "rb") as f_src:
|
||
while chunk := f_src.read(4096):
|
||
f_dst.write(chunk)
|
||
|
||
print(f"Файл '{src}' успешно скопирован в '{dst}'.")
|
||
|
||
except Exception as e:
|
||
print(f"Ошибка при копировании файла '{src}': {e}")
|
||
|
||
|
||
def main():
|
||
largest_file_path = find_largest_file(CATALOG_PATH)
|
||
|
||
if largest_file_path:
|
||
src_path, _ = largest_file_path
|
||
dst_path = RESULT_FILE
|
||
|
||
copy_file(src_path, dst_path)
|
||
|
||
else:
|
||
print("Нет файлов в каталоге.")
|
||
|
||
|
||
def generate_random_numbers(filename, count):
|
||
"""Функция генерирует случайные числа и записывает их в файл."""
|
||
|
||
with open(filename, "w") as f:
|
||
for _ in range(count):
|
||
num = random.randint(0, 1000)
|
||
f.write(str(num) + "\n")
|
||
|
||
print(f"Случайные числа успешно записаны в '{filename}'.")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
generate_random_numbers("/var/data/data1.txt", 50)
|
||
generate_random_numbers("/var/data/data2.txt", 75)
|
||
generate_random_numbers("/var/data/data3.txt", 25)
|
||
print("Генерация файлов завершена.")
|
||
|
||
main()
|