Преобразование массива Python в строку - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь записать содержимое файла re.findall в файл.Я попытался

output_file.write (findall(tags_pattern, searchtext))

, но получил ошибку типа.Как мне преобразовать это в тип, который можно записать в файл?

Спасибо

Ответы [ 4 ]

1 голос
/ 08 февраля 2012

Модуль pickle создан для быстрого сохранения структур Python в файле.Он не так переносим, ​​как JSON или какой-либо другой формат сериализации, но в зависимости от ваших целей его может быть достаточно.

Для использования pickle:

import re, pickle
r = re.findall(pattern, text)
with open('results.pkl', 'wb') as resultsfile:
    pickle.dump(r, resultsfile)

Чтобы восстановить список,используйте pickle.load:

with open('results.pkl', 'rb') as resultsfile:
    r2 = pickle.load(resultsfile)

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

1 голос
/ 08 февраля 2012

Самый простой способ - это JSON-кодирование. Смотрите модуль json.

1 голос
/ 08 февраля 2012

re.findall возвращает список совпадений, найденных в searchtext для tags_pattern. Эти совпадения просто строки. Самый простой способ преобразовать список строк в одну строку, которую можно записать в файл, - это вызвать str.join для строки, представляющей разделитель, который вы хотите вставить между строками в списке. Например, вы можете позвонить '\n'.join(findall(tags_pattern, searchtext)), если хотите сохранить каждое совпадение в отдельной строке.

1 голос
/ 08 февраля 2012

у вас есть функции str(res) и repr(res), но вы также можете сделать ','.join(res)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...