Я пытаюсь удалить символы, которые следуют шаблону, из файла .txt, но мой поиск по регулярному выражению не возвращает ни одного. Соответствующие символы выглядят в текстовом файле иначе, чем при выводе в командной строке.Я новичок в этом и только общие знания о кодировании и декодировании.
Я полагаю, что txt-файл закодирован с использованием ANSI (Windows-1252), и я использую python 3. Я попытался выполнить поиск с использованием нескольких шаблонов регулярных выражений.Каждое регулярное выражение работало при тестировании в RegExr, поэтому я не думаю, что это проблема.
TXT-файл - это выходной файл bulk_extractor, и он выглядит так:
# BANNER FILE NOT PROVIDED (-b option)
# BULK_EXTRACTOR-Version: 1.5.5 ($Rev: 10844 $)
# Feature-Recorder: email
# Filename: W:\Migration\2010013\Working
# Feature-File-Version: 1.1
W:\Migration
2010013\Working/Succession planning/Succession Plan Article
W:\Migration\2010013\Working/Succession planning/Succession Plan Article▯-39612 j26@yahoo.com 397-1911 or</I> j26@yahoo.com</P> <P>\x0A<TABLE
W:\Migration
2010013\Working/Succession planning/Succession Plan Article
W:\Migration\2010013\Working/Succession planning/Succession Plan Article▯-45963 jaime.brown@gmail.com <a href="mailto:jaime.brown@gmail.com?subject=Ask The
Очиститьсначала несколько вещей: я знаю, что имена папок не самые лучшие, но я архивариус, поэтому нам приходится работать с каталогами и файлами, какими бы они ни были.Кроме того, указанный адрес электронной почты является примером, а не чьей-либо реальной электронной почтой.
С этим путем я пытаюсь убрать 'Article▯ - #####' с конца пути к файлу.
При выводе в командной строке символ ▯ изменится на ô ?? o, и теперь он будет читать «ô ?? o - #####».Отсюда и «о» в регулярном выражении.Мой код выглядит так:
with open("email.txt", 'r', encoding = 'cp1252') as file:
all_lines = file.readlines()
no_header = all_lines[5:]
print (no_header) #for testing
pattern = re.compile('/(ô[?]{2}o[-][0-9]*)')
for i in range(len(no_header)):
test = re.search(pattern, no_header[i])
print (test)
Поскольку регулярное выражение работает в RegExr, я ожидал, что для каждой строки будет возвращена строка, соответствующая шаблону.Вместо этого поиск не возвращает ничего для каждой строки.Я также попытался найти символ прямоугольника, используя его код Unicode U + 25AF.Это тоже не сработало.
Кажется, что-то теряется в переводе.Я привык работать с Python 2.7, поэтому я предполагаю, что мне не хватает чего-то здесь, что касается кодирования / декодирования.
Ваша помощь приветствуется!Мы делаем это, чтобы автоматизировать процесс написания метаданных и защитить частные адреса электронной почты отдельных лиц.