diff --git a/utilities/split.py b/utilities/split.py new file mode 100644 index 0000000..030f291 --- /dev/null +++ b/utilities/split.py @@ -0,0 +1,48 @@ +def split_file_exact(input_file, max_lines=1000): + """ + Разбивает файл согласно точному описанию: + - В исходном файле оставляет первые 1000 строк + - Остальные строки переносит в domain-ip-resolve2.txt, domain-ip-resolve3.txt и т.д. + """ + + try: + # Читаем все строки из исходного файла + with open(input_file, 'r', encoding='utf-8') as f: + lines = f.readlines() + + total_lines = len(lines) + + if total_lines <= max_lines: + print(f"Файл содержит {total_lines} строк, разбиение не требуется.") + return + + # Оставляем первые 1000 строк в исходном файле + with open(input_file, 'w', encoding='utf-8') as f: + f.writelines(lines[:max_lines]) + + # Остальные строки распределяем по новым файлам + remaining_lines = lines[max_lines:] + num_additional_files = (len(remaining_lines) + max_lines - 1) // max_lines + + for i in range(num_additional_files): + start_index = i * max_lines + end_index = min((i + 1) * max_lines, len(remaining_lines)) + + output_file = f"domain-ip-resolve{i+2}.txt" + + with open(output_file, 'w', encoding='utf-8') as f: + f.writelines(remaining_lines[start_index:end_index]) + + print(f"Создан файл {output_file} со строками {max_lines + start_index + 1}-{max_lines + end_index}") + + print(f"Разбиение завершено. Создано {num_additional_files} дополнительных файлов.") + + except FileNotFoundError: + print(f"Ошибка: Файл {input_file} не найден.") + except Exception as e: + print(f"Произошла ошибка: {e}") + +# Использование +if __name__ == "__main__": + input_filename = "domain-ip-resolve.txt" + split_file_exact(input_filename) \ No newline at end of file