Seite 1 von 1
Wo ist hier ein Fehler?
Verfasst: Samstag 3. Februar 2007, 19:09
von asdfgqw
In Zeile 22 soll ein Fehler sein. In Zeile 22 (zweiundzwanzig). Ich kenn mich mit python nicht aus. Dies ist ein copy und paste Beispiel das ich teste. Zeile 22 gibt es nicht. Also muß es 21 sein. Sieht jemand was? Mein vi markert die beiden letzten Klammern mit dem t rot an. Was hat das zu bedeuten. Das Original findet ihr hier:
http://we-are-teh-b.org/~tim/index.php?q=node/280
Code: Alles auswählen
from Cheetah.Template import Template
import sys
"""
Die Einstellungen:
template - Die Vorlagendatei, so sehen die Seiten später aus.
output - Hier werden die Seiten hingeneriert
templateDir - Hier sind die Inhaltsdateien drinne
"""
template = "template.html"
output = "output/"
templateDir = "template_files/"
myFile = open(template, 'r')
templateDef = myFile.read()
templateFile = sys.argv[1]
templateFileContent = (open(templateDir + sys.argv[1] + '.html')).read()
title = (templateFile.split("\n"))[0]
inhalt = (templateFile.split("\n",1))[1]
nameSpace = {'title': title, 'inhalt': inhalt}
t = Template(templateDef, searchList=[nameSpace])
myTemplate = open(output + sys.argv[1] + ".html", "w")
myTemplate.write(str(t)
Edit (Leonidas): Code-Highlighting eingeschaltet.
Edit (Leonidas): Verschoben.
Verfasst: Samstag 3. Februar 2007, 19:20
von Mawilo
in der letzten Zeile fehlt eine Klammer
Stephan
Verfasst: Sonntag 4. Februar 2007, 14:10
von asdfgqw
Danke für die Hilfe.
Zwei Fragen habe ich jetzt noch:
1. Wenn ich das script unter Windows laufen lasse:
python blabla > D:\Fehler.txt
dann habe ich die Fehler immer in eine Datei schreiben lassen. Mit Python funktioniert das nicht. Wie macht Ihr denn das?
2. Der Fehler lautet:
Code: Alles auswählen
File "genSite.py", line 17, in ?
inhalt= (templateFile.split("\n",1))[1]
indexError: list index out of range
Was will er mir damit sagen? Wie gesagt ich habe die scripte per copy und paste kopiert weil mir das sehr simpel erschien. Offenbar sceint der Autor, sodern er das selber geschrieben hat, niemals selber getestet zu haben.
Verfasst: Sonntag 4. Februar 2007, 14:14
von birkenfeld
asdfgqw hat geschrieben:Danke für die Hilfe.
Zwei Fragen habe ich jetzt noch:
1. Wenn ich das script unter Windows laufen lasse:
python blabla > D:\Fehler.txt
dann habe ich die Fehler immer in eine Datei schreiben lassen. Mit Python funktioniert das nicht. Wie macht Ihr denn das?
Ich verstehe nicht ganz, wo der Unterschied zwischen "unter Windows" und "Mit Python" ist.
2. Der Fehler lautet:
Code: Alles auswählen
File "genSite.py", line 17, in ?
inhalt= (templateFile.split("\n",1))[1]
indexError: list index out of range
Was will er mir damit sagen? Wie gesagt ich habe die scripte per copy und paste kopiert weil mir das sehr simpel erschien. Offenbar sceint der Autor, sodern er das selber geschrieben hat, niemals selber getestet zu haben.
Naja, der obige Befehl teilt "templateFile" am ersten Zeilenende in zwei Teile auf. "templateFile" ist aber ein Kommandozeilenargument, ich vermute daher stark, dass "templateDef" gemeint ist.
Verfasst: Sonntag 4. Februar 2007, 14:43
von Leonidas
birkenfeld hat geschrieben:Ich verstehe nicht ganz, wo der Unterschied zwischen "unter Windows" und "Mit Python" ist.
Es gibt keinen Unterschied, weil das weder mit Python noch mit Windows zu tun hat. Es geht darum, dass der Redirection-Operator > nur stdout weiterleitet, nicht aber stderr, wo die Exceptions ausgegeben werden. Wie man stderr weiterleitet
beschreibt Microsoft in der Windows XP Dokumentation.
Verfasst: Samstag 17. Februar 2007, 11:03
von nkoehring
Das geht unter Windoze eigentlich genau wie unter Linux...
Verfasst: Samstag 17. Februar 2007, 11:40
von Leonidas
nkoehring hat geschrieben:Das geht unter Windoze eigentlich genau wie unter Linux...
Einige Shells haben eine andere und/oder erweiterte Syntax, siehe zshs ``2>>``-Operator.
Verfasst: Samstag 17. Februar 2007, 11:59
von nkoehring
Ja da hast du auch wieder recht...
[OFFTOPIC]
sag mal Leonidas... du benutzt scheinbar ein Linux, die ZShell, VIM, Python... gibts denn irgendwas das wir nicht beide benutzen ^^
[/OFFTOPIC]
Verfasst: Samstag 17. Februar 2007, 15:38
von lunas
Leonidas hat geschrieben:
Einige Shells haben eine andere und/oder erweiterte Syntax, siehe zshs ``2>>``-Operator.
Die Command Shell von WinXP kann das auch...
sollte also auch unter Windows funktionieren.
Edit:
Ups, habe den Hinweis wohl übersehen...
