mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
Create split.py
This commit is contained in:
48
utilities/split.py
Normal file
48
utilities/split.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user