ungewolltes NewLine Zeichen
Verfasst: Samstag 23. Mai 2009, 14:09
Hallo zusammen,
Ich bin gerade dabei ein CGI-Script zu schreiben und bin dabei auf ein Problem gestoßen, welches ich nach einigen STunden und etlichen Recherchevorgängen nicht lösen konnte. Im Prinzip ist alles erstmal ganz einfach: Ich gebe einen HTML text heraus, bei dem ich dynamisch einige Variablen einsetze. Im Endeffekt sieht das dann etwa so aus, nur eben mit richtigem html Code und um Einiges komplexer:
Ich habe nun in dem Dictionary mehrere Variablen, die ich davor über eine Datei eingelesen habe:
Diese Liste infoList setze ich mit infoList[0], infoList[1] etc in den Html-String ein. So und nun das Problem: Anscheinend haben die Werte infoList[0] etc am Ende (wahrscheinlich wg readline()) einen '\n' eingefügt, denn im resultierenden HTML Text wird immer nach dem Einsetzen der Variable eine neue Seite angefangen. Also habe ich folgendes gemacht:
Nur das Problem ist, dass das nix bringt, der Zeilenumbruch bleibt bestehen. Ich habe dann zufällig in einer Fehlermeldung gesehen, das PYthon die Variablen folgendermaßen angibt:
'Uploader'='Value\r'
Ich vermute also, dass es irgendwas mit raw-strings zu tun hat, allerdings, wenn ich mir die Variablen nach dem replace-Befehl als Raw ausgeben lasse, findet sich kein \n in den strings.
Hat irgendjemand eine Idee, wie ich verhindern kann, dass jedesmal beim einsetzen einer Variable ein Zeilenumbruch hinzugefügt wird? Überigens, wenn ich die Werte mit int(value) einsetze, bleibt der Zeilenumbruch aus, es scheint also nur bei strings aufzutauchen.
Danke für Hilfe,
Maenny
Ich bin gerade dabei ein CGI-Script zu schreiben und bin dabei auf ein Problem gestoßen, welches ich nach einigen STunden und etlichen Recherchevorgängen nicht lösen konnte. Im Prinzip ist alles erstmal ganz einfach: Ich gebe einen HTML text heraus, bei dem ich dynamisch einige Variablen einsetze. Im Endeffekt sieht das dann etwa so aus, nur eben mit richtigem html Code und um Einiges komplexer:
Code: Alles auswählen
print """Hier kommt HTML Code mit einigen %(platzhalter)s die ich einfügen will.""" % {'platzhalter':'Sachen'}
Code: Alles auswählen
txtFile=file('meine Datei','r')
infoList=txtFile.readlines()
Code: Alles auswählen
infoList[0]=infoList[0].replace('\n','')
infoList[1]=infoList[1].replace('\n','')
infoList[2]=infoList[2].replace('\n','')
# etc.
'Uploader'='Value\r'
Ich vermute also, dass es irgendwas mit raw-strings zu tun hat, allerdings, wenn ich mir die Variablen nach dem replace-Befehl als Raw ausgeben lasse, findet sich kein \n in den strings.
Hat irgendjemand eine Idee, wie ich verhindern kann, dass jedesmal beim einsetzen einer Variable ein Zeilenumbruch hinzugefügt wird? Überigens, wenn ich die Werte mit int(value) einsetze, bleibt der Zeilenumbruch aus, es scheint also nur bei strings aufzutauchen.
Danke für Hilfe,
Maenny