2017-04-03 1 views
0

Ich versuche, einen Testfall mit Python Standard Library-Modul string.Templateneue Zeilen Zeichen vermeiden, während Vorlage zu erzeugen

s = Template('''TestStep("0.1", "Signal match time: %d \n" 
       "%s value: %d", 
       SignalMatchTime, 
       $QU_Signals, 
       value); ''') 

print(s.substitute(QU_Signals='Signal_1')) 

Das Problem ist, dass in der Ausgabe "\ n" zu erzeugen Character ist ein Newline ersetzt.

TestStep("0.1", "Signal match time: %d 
" 
       "%s value: %d", 
       SignalMatchTime, 
       QU_AVL_STEA_DV, 
       value); 

Erforderlich Ausgabe lautet: (Ich brauche zu retten "\ n" Zeichen in der Ausgabedatei)

TestStep("0.1", "Signal match time: %d \n" 
       "%s value: %d", 
       SignalMatchTime, 
       QU_AVL_STEA_DV, 
       value); 

Hat jemand eine Idee, wie ich es vermeiden kann?

+1

Verwendung roh String? 'r" Signalübereinstimmungszeit:% d \ n "' –

+0

@ Jean-FrançoisFabre Ich habe rohe Zeichenkette beim Erstellen von Template 's verwendet = Template (r '' ' Testfall $ QU_Signals() (') '' ') 'und es funktioniert. Vielen Dank! –

+1

oh ja, das funktioniert :) –

Antwort

2

Sie können \n ersetzen mit \\n

lief ich den folgenden Code:

from string import Template 
file = open("testfile.txt", "w") 

s = Template('''TestStep("0.1", "Signal match time: %d \n" 
       "%s value: %d", 
       SignalMatchTime, 
       $QU_Signals, 
       value); ''') 

file.write(s.substitute(QU_Signals='Signal_1')) 
file.write("\n\n\n\n") #To add some space between the writes 

s = Template('''TestStep("0.1", "Signal match time: %d \\n" 
       "%s value: %d", 
       SignalMatchTime, 
       $QU_Signals, 
       value); ''') 



file.write(s.substitute(QU_Signals='Signal_1')) 

wobei das Ergebnis:

`TestStep("0.1", "Signal match time: %d 
" 
       "%s value: %d", 
       SignalMatchTime, 
       Signal_1, 
       value); 



TestStep("0.1", "Signal match time: %d \n" 
       "%s value: %d", 
       SignalMatchTime, 
       Signal_1, 
       value); ` 
Verwandte Themen