收集 Python 输出直到当前执行并将其分配给用于发送电子邮件的变量

Collect Python output till current execution and assign it to variable for sending email

我正在使用 Python 进行文本处理,我在其中查找控制台日志中的特定文本并打印每个匹配的行。这是通过一个函数完成的:

get_matched_log_lines(url, search_pattern, print_pattern) 其中 url = 我从中获取我的日志,search_pattern = 我的目标搜索模式,print_pattern = 我想要打印输出的方式(它,%s.%s)

如何通过电子邮件发送函数 get_matched_log_lines() 的整个输出?发邮件功能代码我已经写在Python.

这是我目前think/attempted所做的:

email_content = get_matched_log_lines(url, search_pattern, print_pattern)
TO = 'recipient email address'
FROM ='sender email address'

#emailing function - py_mail
py_mail("Test email subject", email_content, TO, FROM) 

这为我提供了一封空电子邮件。

这是我根据 PyNEwbie 的建议做出的回答:

   def get_matched_log_lines(url, search_pattern, print_pattern):
        out = open("output_file.txt", "w")
        for something in somthings:
              test = print_pattern % matched_line
              print >>out, test
            out.close()

^^ 只是一个一般示例(语法可能不正确)。这个想法是打开 file in write mode 然后将输出转储到其中。

fp = open("output_file.txt", 'r')
    # Create a text/plain message
    msg = fp.read()
    fp.close()
    email_content = msg

然后打开相同的 file in read mode 并将其输出存储到某个变量(在我的例子中 email_content

终于发了一封电子邮件 email_content,

 email_content = get_matched_log_lines(url, search_pattern, print_pattern)
    TO = 'recipient email address'
    FROM ='sender email address'

#emailing function - py_mail
py_mail("Test email subject", email_content, TO, FROM)