0

Ich mache Textverarbeitung mit Python, in dem ich nach einem bestimmten Text in einem Konsolenprotokoll suche und jede passende Zeile drucke. Dies wird durch eine Funktion erreicht genannt:Python-Ausgabe bis zur aktuellen Ausführung sammeln und der Variablen zum Senden von E-Mails zuweisen

get_matched_log_lines(url, search_pattern, print_pattern) wo url = aus dem ich meine log bekommen, search_pattern = mein Ziel Suchmuster, print_pattern = die Art, wie ich möchte, dass meine Ausgabe drucken (sein, %s.%s)

Wie sende ich diese gesamte Ausgabe der Funktion get_matched_log_lines() per E-Mail? Der E-Mail-Funktionscode wurde bereits von mir in Python geschrieben.

Hier ist, was ich denke/versuchte so weit:

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) 

Das ist mir eine leere E-Mail zur Verfügung stellt.

+0

Und Ihrer Frage? – PyNEwbie

+0

Ich habe gerade meine Frage bearbeitet ... Wie sende ich diese gesamte Ausgabe der Funktion get_matched_log_lines() per E-Mail? Ich hoffe, das ist jetzt klarer. –

+0

Mögliches Duplikat von [Wie versende ich eine E-Mail mit Python?] (Http://stackoverflow.com/questions/6270782/how-to-send-an-email-with-python) – PyNEwbie

Antwort

0

Hier ist meine Antwort auf der Grundlage der Vorschläge von 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() 

^^ nur ein allgemeines Beispiel (Syntax vielleicht falsch). Die Idee ist, die file in write mode zu öffnen und dann die Ausgabe darin zu entleeren.

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

öffnen Sie dann die gleichen file in read mode und speichert seine Ausgabe zu einem gewissen var (in meinem Fall email_content)

schließlich eine E-Mail mit diesen email_content senden,

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) 
Verwandte Themen