@ubushan

Какой инструмент вывода конкретного кода ошибки из файла использовать?

Есть текстовый документ с данными, нужно сделать так, чтобы ссылаться к конкретному "Коду ошибки" и выводить информацию только по этому коду

Пример файла:
Код ошибки: 10
"Ошибка в среде"
http://site/topic/777
http://site/topic/111

Код ошибки: 37
"Не удалось инициализировать драйвер этого устройства (Код 37)
(Операция не выполнена) Запрошенная операция не выполнена"
http://site/topic/555

Код ошибки: 374
"Не удалось инициализировать драйвер этого устройства (Код 347)
(Операция не выполнена) Запрошенная операция не выполнена"
http://site/topic/333

...
  • Вопрос задан
  • 188 просмотров
Решения вопроса 2
@GeneD88
QA
Я бы на вашем месте представил вашу текстовую информацию как json. И вам было бы в разы легче все делать.
Либо как минимум можно привести к виду:
Code,Error
Код ошибки: 10,"Ошибка в среде"
Код ошибки: 37,"Не удалось инициализировать драйвер этого устройства (Код 37) (Операция не выполнена) Запрошенная операция не выполнена"
Код ошибки: 374,"Не удалось инициализировать драйвер этого устройства (Код 347) -(Операция не выполнена) Запрошенная операция не выполнена"

И затем парсить...
with open('csv.csv', 'r') as csvfile: 
    fileDialect = csv.Sniffer().sniff(csvfile.read(1024))
    csvfile.seek(0)
    empty = {}
    dictReader = csv.DictReader(csvfile, dialect=fileDialect)
    for row in dictReader:
        empty[row['Code'].replace('Код ошибки: ','')] = row['Error']


print empty['37']

>> Не удалось инициализировать драйвер этого устройства (Код 37) (Операция не выполнена) Запрошенная операция не выполнена

ps: Если же хотите оставить файл как есть - тогда, как уже сказали - regex.
Ответ написан
Комментировать
@abcd0x00
Надо этот файл перевести в словарь

Чтобы такая запись
Код ошибки: 10
"Ошибка в среде"
http://site/topic/777
http://site/topic/111


Преобразовывалась в такую
{10: ('Ошибка в среде', ['http://site/topic/777', 'http://site/topic/111'])}


Пример
>>> d = {10: ('Ошибка в среде',
...           ['http://site/topic/777', 'http://site/topic/111']),
...      37: ('Не удалось инициализировать драйвер этого устройства (Код 37)\n'
...           '(Операция не выполнена) Запрошенная операция не выполнена',
...           ['http://site/topic/555'])}
>>> d[10]
('Ошибка в среде', ['http://site/topic/777', 'http://site/topic/111'])
>>> d[37]
('Не удалось инициализировать драйвер этого устройства (Код 37)\n(Операция не выполнена) Запрошенная операция не выполнена', ['http://site/topic/555'])
>>> 
>>> print(d[37][0])
Не удалось инициализировать драйвер этого устройства (Код 37)
(Операция не выполнена) Запрошенная операция не выполнена
>>>

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Firik67
Middle PHP Developer
Ответ сходу. Можно внести все записи о кодах в список, разбив их по пустой строке. А затем, например регуляркой, сверять каждый элемент списка с тем, что вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы