электронная почта RenderLog с хорошим форматированием - PullRequest
0 голосов
/ 07 января 2012

Итак, я пишу скрипт на python, который выдает рендер-файл в текстовый файл, а затем отправляет его по электронной почте пользователю внутри тела сообщения.

Я использую Python, читаемый так:

f=open('filename.txt','r')
f.read()

, где f - это экземпляр файла. Вывод, который я получаю, не очень удобен для чтения.

'# \' // Предупреждение: представление при визуализации: выделенная область слишком мала // \ r \ ndefaultPointLight (1, 1,1,1, 0, 0, 0,0,0, 1); \ r \ nrenderWindowRender redoPreviousRender renderView; \ r \ n

когда я бы предпочел, чтобы он отображался как

// Предупреждение. Вид визуализации: выделенная область слишком мала //

defaultPointLight (1, 1,1,1, 0, 0, 0,0,0, 1);

renderWindowRender redoPreviousRender renderView;

Есть ли простой способ конвертировать \ r и \ n в переводы строк в письме?

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Прежде всего вам необходимо отправить письмо в формате HTML. Делая это, вы можете отформатировать его с различными тегами HTML. Затем просто замените символы разрыва тегом <br/>.

log.replace('\n','<br/>').replace('\n\r','<br/>')

Здесь - хороший почтовый код с поддержкой html.

0 голосов
/ 07 января 2012

В качестве очень быстрого и грязного способа вы можете использовать .replace (r '\ r \ n', '\ n'), например:

>>> print '# \'// Warning: Render view: Selected region is too small // \r\ndefaultPointLight(1, 1,1,1, 0, 0, 0,0,0, 1);\r\nrenderWindowRender redoPreviousRender renderView;\r\n'.replace(r'\r\n', '\n')
# '// Warning: Render view: Selected region is too small // 
defaultPointLight(1, 1,1,1, 0, 0, 0,0,0, 1);
renderWindowRender redoPreviousRender renderView;

"r" вr '\ r \ n' означает, что строку следует понимать буквально вопреки '\ n', что является фактическим переводом строки.

(На самом деле, я не знаю, каков символ перевода строки на вашей платформе. Измените '\ n' соответственно)

...