Я не знаю, чи це дозволена відповідь, оскільки більшість наступного коду походить із ChatGPT, а правила не дозволяють ділитися такими відповідями тут. Проте я не хочу ділитися кодом заради самого коду, а з метою отримання правильного — анонімного — введення для ChatGPT. Це більше інструмент для виконання завдань, це простий код, який допоможе безпечно вводити запитання. Ось чому я сподіваюся, що це дозволено.

УВАГА: цей код, здається, працює недостатньо добре. Нижче є зауваження про те, що регулярний вираз не вловлює всі шаблони, наприклад:

my_name@example.com

І:

ви повинні використовувати лише сімейство example.tld як приклад домени

Я прошу всіх, хто працює над цим, вставити іншу відповідь або змінити цю, щоб вона працювала.

# Імпорт необхідних бібліотек
import re
import json
import os

def anonymize_emails(шлях_файлу):
    # Регулярний вираз для пошуку електронних листів
    email_pattern = re.compile(r'[w.-]+@[w.-]+.w+')
    
    # Словник для зберігання оригінальних і фіктивних адрес електронної пошти
    email_map = {}
    
    # Прочитати вхідний файл
    з open(file_path, 'r', encoding='utf-8') як файл:
        вміст = file.read()
    
    # Знайти всі унікальні електронні листи у вмісті
    unique_emails = set(re.findall(email_pattern, content))
    
    # Створіть фіктивні електронні листи та заповніть карту електронних листів
    для i, електронна пошта в enumerate(unique_emails, start=1):
        dummy_email = f'dummy{i}@dummy.com'
        email_map[електронна пошта] = dummy_email
        content = content.replace(email, dummy_email)
    
    # Створення нових шляхів до файлів
    base, ext = os.path.splitext(шлях_файлу)
    new_file_path = f'{base}_anonym{ext}'
    
    json_filename = f'{os.path.basename(base)}_email_map.json'
    json_path = os.path.join(os.path.dirname(файл_шлях), json_filename)
    
    # Записати анонімний вміст у новий файл
    з open(new_file_path, 'w', encoding='utf-8') як файл:
        file.write(content)
    
    # Записати карту електронної пошти у файл JSON
    з open(json_path, 'w', encoding='utf-8') як json_file:
        json.dump(email_map, json_file, secure_ascii=False, indent=4)
    
    # Надрукувати шляхи до нових файлів
    print(f'Анонімізацію завершено. Анонімний файл збережено за адресою: {new_file_path}')
    print(f'Відповідність електронної пошти збережено за адресою: {json_path}')

if __name__ == "__main__":
    # Запитувати у користувача шлях до файлу
    file_path = input("Будь ласка, введіть шлях до текстового файлу: ")
    anonymize_emails(шлях_файлу)

Previous Article

Next Article

Як об’єднати розрізнені та переплетені проекти з SSIS, збережених процедур і баз даних Access в один проект SSIS за допомогою ChatGPT?

Write a Comment

Leave a Comment

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *