2017-12-05 4 views
0

Ich bin neu in Python. Nach diesem Beispiel: https://medium.freecodecamp.org/send-emails-using-code-4fcea9df63fSo lesen Sie den Inhalt der Textdatei mit der Funktion

Ich habe eine Nachricht Vorlagendatei message.txt die Vorlage Zeichenfolge “${PERSON_NAME}” verwendet. Die Zeichenfolge wird durch den tatsächlichen Namen der Person ersetzt.

enter image description here

So verwende ich diese Funktion aber etwas nicht richtig abgeht, weil es mir seltsam Ausgang“

from string import Template 

def read_template(filename): 
    with open(r'C:\Users\MyUserName\Documents\SQL_NeedToKnow\Python\message.txt', 'r', encoding='utf-8') as template_file: 
     template_file_content = template_file.read(100) 
    return Template(template_file_content) 
print(read_template(r'C:\Users\MyUserName\Documents\SQL_NeedToKnow\Python\message.txt')) 

enter image description here

Was ich vermisst gibt?

+2

lesen Warum Sie die 'string.Template' Klasse verwenden? Warum denkst du, dass die Ausgabe "komisch" ist? Was haben Sie erwartet, nachdem Sie eine Funktion geschrieben haben, die ein 'Template'-Objekt explizit zurückgibt? – ekhumoro

+0

Wenn Sie nur die Datei lesen wollen, brauchen Sie * nicht * 'string.Template' zu ​​verwenden, sondern geben' template_file.read (100) 'zurück. Es sei denn, natürlich, in diesem Fall ist dies das erwartete Verhalten. Sie rufen die '__str__' -Methode der Instanz auf, indem Sie sie' drucken'. –

+0

Lesetemplate-Datei ist nur ein Teil meines Projekts. Ich möchte nur sicherstellen, dass die Funktion ordnungsgemäß funktioniert, damit ich fortfahren kann. – Oleg

Antwort

0

Sie können die readlines() Funktion verwenden, um die Datei zu lesen:

Damit wird der gesamte Inhalt der Datei gedruckt.

Auch readline() Funktion eine einzelne Zeile aus der Datei lesen, während readlines() den gesamten Inhalt der Datei

Verwandte Themen