Python Поиск CSV с помощью Regex и экспорт результатов в другой CSV - PullRequest
0 голосов
/ 21 января 2020

Я использую Python3 с загруженным модулем regex и csv и пытаюсь создать скрипт для извлечения строки из csv с помощью регулярного выражения, а затем экспортировать полученный результат в другой csv. Идея заключается в том, что у меня есть CSV, который кто-то дал мне, с одним столбцом и по какой-то причине в нем есть ячейка с большим количеством информации. включая кавычки, возврат строки и кучу другого мусора. Мне нужен только очень маленький раздел каждой ячейки.

Мой скрипт может распечатать результат, но по какой-то причине следующий скрипт возвращает ошибку "AttributeError: 're.Match' object has no attribute 'write'" при попытке записи в CSV.

Я хочу извлечь одну строку из каждой ячейки CSV, а затем экспортировать ее в другую CSV.

import csv
import re

with open('Failed.csv',mode='r') as csv_file, open('result.csv', mode='wb') as csv_result:
     csv_reader = csv.reader(csv_file)
     writer=csv.writer(csv_result, delimiter=',')
     for row in csv_reader:
            pattern = 'Computer Configuration\\.*\n*.*'
            currentrow = row[0]
            found = re.search(pattern, currentrow) 
            if found:
                print(found)
                writer.writerow(found)

1 Ответ

0 голосов
/ 21 января 2020

Метод re.search возвращает объект Match, который вы не можете использовать напрямую. Если вы хотите извлечь значение из строки, вы можете использовать группу

value = "foo123"
pattern = "foo(.*)"
match = re.search(pattern, value)

print(match, type(match))  # <re.Match object; span=(0, 3), match='foo'> <class 're.Match'>
print(match.groups())  # ('123',)
print(match.group(1))  # 123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...