То, что я пытаюсь сделать: Существует большой лист Excel с большой случайной информацией о клиентах. Я хочу сортировать адрес электронной почты и другие данные в заданном формате в новом файле excel.Как совместить текст в ячейке с регулярным выражением и сохранять только текст, соответствующий регулярному выражению?
Я не могу понять, как сопоставить текст ячейки (который будет иметь некоторый формат, такой как адрес электронной почты, сжимаемый и похожий) с регулярным выражением и сохранить только данные регулярного выражения в списке.
Поблагодарили бы за помощь. Благодаря
import sys, os, openpyxl
def sort_email_from_xl():
sheet = sheet_select() #Opens the worksheet
emailRegex = re.compile(r'''([a-zA-Z0-9._%+-][email protected]+[a-zA-Z0-9.-]+(\.[a-zA-Z]{2,4}))''',re.VERBOSE)
customeremails = []
for row in range(0, max_row):
if cell.text == emailRegex:
mail = cell.text
customeremails.append(mail)
return customeremails
print(customeremails)
спасибо, что изучаю все ошибки, которые я сделал. По какой-то причине приведенный выше код дает мне имя NameError: name 'max_row' не определено'. Я предположил, что это потому, что я должен был использовать 'sheet.max_row'. Пробовал это, и теперь я получаю объект AttributeError: 'str' не имеет атрибута max_row''. Я просто просмотрел документы, и я думаю, что это может быть потому, что я вызываю лист с именем, которое я назначил, а не с Листом2. Есть ли способ обойти это? Я бы скорее назвал лист с именем, которое я назначил. – Sid
@sid да, код вокруг цикла for также нуждается в исправлениях, я добавил ссылку на базовый скрипт python в ответ – hansaplast
Нет, Sheet2, похоже, не проблема. Протестировано, и теперь он говорит: Sheet2 не существует. – Sid