Пожалуйста, обратите внимание, что пользователь заблокирован
Написан на Python. Не судите строго! Писал для своих нужд, чтоб по-быстрому отфильтровать спарсенную инфу.
Когда софт запрашивает путь к исходному файлу (не обязательно с юзернеймами) писать ничего не нужно, просто берёте и мышкой перетаскиваете txt файл командную строку.
Потом программа попросить указать название выходного файла: пишете что-то типо output.exe
Программа всё обрабатывает, выдаёт результат и даже создаст файл report.txt с отчётом.
Ниже привожу официальное описание своего софта:
Скачать UniqiFY: https://mega.nz/file/9oQgHYCB#LJZdU4YF5XSmrpTv5a_LEfwNaAy3FCpdOqycguJywXo
P.S:
Сегодня добавлю формат .exe
Протестировано с файлом, в котром список 170к юзернеймов
Работает с файлами до 1 gB
Отчёт выглядит вот так:
Изначальное количество юзернеймов: 172210
Уникальных юзернеймов: 13167
Файл с уникальными юзернеймами сохранён как: output.txt
Не обязательно это должны быть юзернеймы, любой список любых слов чиститься от дублей
Когда софт запрашивает путь к исходному файлу (не обязательно с юзернеймами) писать ничего не нужно, просто берёте и мышкой перетаскиваете txt файл командную строку.
Потом программа попросить указать название выходного файла: пишете что-то типо output.exe
Программа всё обрабатывает, выдаёт результат и даже создаст файл report.txt с отчётом.
Ниже привожу официальное описание своего софта:
Uniqify: Инструмент для Очистки Списков от Дубликатов
Uniqify — это простой и эффективный инструмент для удаления дубликатов из текстовых файлов, который помогает поддерживать ваши списки в идеальном порядке. Разработанный с акцентом на удобство и надежность, Uniqify позволяет легко управлять и очищать данные, не тратя время на ручные операции.Ключевые функции:
- Удаление Дубликатов: Автоматически обнаруживает и удаляет повторяющиеся записи из вашего текстового файла, оставляя только уникальные элементы.
- Поддержка Разных Кодировок: Определяет и корректно обрабатывает кодировку исходного файла, обеспечивая точность чтения и записи данных, даже если файл содержит нестандартные символы.
- Отчёт о Работе: Создаёт подробный отчёт, который включает информацию о количестве исходных и уникальных записей, а также о месте хранения результата. Это позволяет отслеживать и документировать процесс очистки.
- Интуитивно Понятный Интерфейс: Просто и быстро запускается через командную строку, где пользователь вводит путь к исходному файлу и название выходного файла. Uniqify делает весь процесс автоматическим и простым.
- Самодостаточный Исполняемый Файл: В результате работы вы получаете один исполняемый файл .exe, который не требует установки дополнительных зависимостей или Python. Легко распространять и использовать на других компьютерах.
Как это работает:
- Загрузите ваш файл: Укажите путь к текстовому файлу, содержащему список юзернеймов или других данных.
- Выберите имя выходного файла: Укажите название для нового файла, в который будут записаны уникальные записи.
- Получите результаты: Uniqify обработает файл, удалит дубликаты и создаст новый файл с уникальными данными. Кроме того, будет сформирован отчёт, чтобы вы могли легко проследить за выполненными действиями.
Код:
def remove_duplicates(input_file, output_file, report_file):
import chardet
def detect_encoding(file_path):
with open(file_path, 'rb') as file:
raw_data = file.read(10000) # Читаем часть файла для определения кодировки
result = chardet.detect(raw_data)
return result['encoding']
def read_file_with_encoding(file_path, encoding):
with open(file_path, 'r', encoding=encoding) as file:
return file.readlines()
try:
# Определение кодировки файла
encoding = detect_encoding(input_file)
print(f"Используемая кодировка: {encoding}")
# Чтение списка юзернеймов из файла
try:
usernames = read_file_with_encoding(input_file, encoding)
except UnicodeDecodeError:
print(f"Ошибка: не удалось прочитать файл с кодировкой {encoding}. Попробуем latin1.")
usernames = read_file_with_encoding(input_file, 'latin1')
encoding = 'latin1'
# Удаление пробелов и дубликатов
cleaned_usernames = [username.strip() for username in usernames]
unique_usernames = list(set(cleaned_usernames))
# Запись уникальных юзернеймов в новый файл
with open(output_file, 'w', encoding='utf-8') as file:
for username in unique_usernames:
file.write(f"{username}\n")
# Создание отчёта
with open(report_file, 'w', encoding='utf-8') as report:
report.write(f"Обработан файл: {input_file}\n")
report.write(f"Изначальное количество юзернеймов: {len(usernames)}\n")
report.write(f"Уникальных юзернеймов: {len(unique_usernames)}\n")
report.write(f"Файл с уникальными юзернеймами сохранён как: {output_file}\n")
print(f"Операция завершена успешно. Отчёт сохранён как {report_file}")
except FileNotFoundError:
print(f"Ошибка: файл {input_file} не найден.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
import os
# Запрашиваем путь к начальному файлу и название выходного файла
input_file = input("Введите путь к начальному файлу с юзернеймами: ").strip()
output_file = input("Введите название выходного файла с уникальными юзернеймами: ").strip()
report_file = "report.txt" # Можно оставить фиксированное название для отчёта
if not os.path.isfile(input_file):
print(f"Ошибка: файл {input_file} не существует.")
else:
remove_duplicates(input_file, output_file, report_file)
Скачать UniqiFY: https://mega.nz/file/9oQgHYCB#LJZdU4YF5XSmrpTv5a_LEfwNaAy3FCpdOqycguJywXo
P.S:
Сегодня добавлю формат .exe
Протестировано с файлом, в котром список 170к юзернеймов
Работает с файлами до 1 gB
Отчёт выглядит вот так:
Изначальное количество юзернеймов: 172210
Уникальных юзернеймов: 13167
Файл с уникальными юзернеймами сохранён как: output.txt
Не обязательно это должны быть юзернеймы, любой список любых слов чиститься от дублей
Последнее редактирование: