Скрыть электронные письма в файле дампа MySQLPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Скрыть электронные письма в файле дампа MySQL

Сообщение Anonymous »

Я новичок в Python, и мне пришлось решать простую задачу, которая сейчас выглядит совсем не простой.
Итак, по сути, идея состоит в том, чтобы предоставить команде разработчиков запутанный дамп MySQL.< /p>
Дамп полон операторов INSERT с электронными письмами клиентов, и идея состоит в том, чтобы заменить имена пользователей случайными хэшами (случайность важна из-за индексов UNIQ), а также заменить имя домена.
Дамп полон операторов INSERT с электронными письмами клиентов, и идея состоит в том, чтобы заменить имена пользователей некоторыми случайными хэшами (случайность важна из-за индексов UNIQ), а также заменить имя домена. p>
Я пытался использовать re.sub, он справляется со своей задачей, но только если в каждой строке есть одно совпадение с регулярным выражением. К сожалению, операторы INSERT содержат много адресов электронной почты в одной строке, поэтому мне интересно, я что-то упускаю?
По сути, вот пример данных:

Код: Выделить всё

INSERT INTO `users` VALUES ('john','john@gmail.com','\0'),('kate','kate@yahoo.com','\0'),
INSERT INTO `users` VALUES ('peter','peter@gmail.com','\0'),
Текущий результат:

Код: Выделить всё

INSERT INTO `users` VALUES ('john','-**5196869426929071700**@example.com','\0'),('kate','-**5196869426929071700**@example.com','\0'),
INSERT INTO `users` VALUES ('peter','-4574418619379266923@example.com','\0'),

Желаемый результат:

Код: Выделить всё

INSERT INTO `users` VALUES ('john','-**5196869426929071700**@example.com','\0'),('kate','-**7140769694376981046**@example.com','\0'),
INSERT INTO `users` VALUES ('peter','-4574418619379266923@example.com','\0'),
Мой код:

Код: Выделить всё

import re

with open("dump.sql", "r") as file:
lines = file.readlines()

def repl(match):
output = str(hash(line)) + "@example.com"
return output

new_lines = []
for line in lines:
new_lines.append(re.sub('([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,})', repl, line))

with open("dump-processed.sql", "w") as file:
file.writelines(new_lines)
Любые мысли по этому вопросу очень приветствуются, заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/761 ... -dump-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»