Преобразование массива Python в строку

1

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

output_file.write (findall(tags_pattern, searchtext))

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

благодаря

Теги:
arrays
text-files

4 ответа

1
Лучший ответ

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

  • 0
    Да, работал как шарм, спасибо
1

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

Использовать рассол:

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

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

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню