adinin
Goto Top

Problem mit Python

Hallo ich habe ein Problem mit Python.

Mein Problem ist das ich eine Python Programm schreibe mit hilfe von Tutourials und es geht fast nie ein Beispiel:

def main():
outfile = open ("text.txt","w")  

outfile write("Hallo das ist eine Toturial von Adinin" + "\n")  
outfile write("Adinin-Scripts" + "\n")  
outfile write("ByeBye" + "\n")  

outfile close()
main ()

Wiso geht das nicht?

Content-Key: 139813

Url: https://administrator.de/contentid/139813

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: Arano
Arano 03.04.2010 um 23:04:38 Uhr
Goto Top
Hallo Adinin

ich kenne Python nicht, habe zwar ein, zwei mal rein gesehen und die eine oder andere Datei etwas "modifiziert" aber sonst nie was damit zu tun gehabt.
Aber als erstes wre es trotzdem besser würdest du dich in Zukunft etwas genauer ausdrücken face-wink
Mit
Wieso geht das nicht ?
kann niemand etwas anfangen ! Da musst du schon genauer definieren was nicht funktioniert bzw. am besten wäre du erklärst kurz was es eigentlich tun sollte und was es stattdessen macht / nicht macht.
Wäre ja auch möglich das bei dir die neue Datei zwar erstellt wird, sie aber leer bleibt oder mit irgend einem Buchstabensalat gefüllt wird, oder oder oder...

Gibt es Fehlermeldungen sollten diese auch immer erwähnt werden, so wie diese, die ich bekomme lass ich dein Script laufen:
arano@lamp:~$ python p.py 
  File "p.py", line 2  
    outfile = open ("text.txt","w")  
          ^
IndentationError: expected an indented block
arano@lamp:~$ 
Durch diese Fehlermeldung habe ich z.B. das hier gefunden: http://mail.python.org/pipermail/tutor/2007-January/051903.html
Python uses indentation to define blocks.
Alles was zu der Funtkion "main()" gehören soll, muss also eingerückt (indent) werden.
Danach kam diese Fehlermeldung:
arano@lamp:~$ python p.py 
  File "p.py", line 3  
    outfile write("Hallo das ist eine Toturial von Adinin" + "\n")  
                ^
SyntaxError: invalid syntax
arano@lamp:~$
Und durch ein bisschen suchen hierzu (nicht vergessen ich habe keine Ahnung von Python) wusste ich anschließend das du den punkt (.) zwischen "outfile" und "write()" vergessen hast. Gas ganze muss am ende also so aussehen:
def main():
    outfile = open ("text.txt","w")  
    outfile.write("Hallo das ist eine Toturial von Adinin" + "\n")  
    outfile.write("Adinin-Scripts" + "\n")  
    outfile.write("ByeBye" + "\n")  
    outfile.close()

main ()
Und wie du vielleicht jetzt schon bemerkst, durch das Einrücken ist das ganze schon mal um ein gutes Stück besser lesbar !

Und noch was zu dem Punkt:
Ich vermite mal, das durch "outfile = open()" ein Objekt erstellt wird das in der Variable "outfile" gespeichert wird. möchte man nun eine Methode dieses Objektes aufrufen, so verbinded man den Methodennamen mit der Variabel: "outfile.write()". Wir rufen also die Methode "write()" des Objektes "outfile" auf.
Das siehst du dann auch beim schließen der Datei wieder.

~Arano
Mitglied: tikayevent
tikayevent 04.04.2010 um 00:09:32 Uhr
Goto Top
Ich weiß ja nicht, ob du dich an die Python-Vorgaben gehalten hast oder nicht, manchmal geht die Formatierung beim Copy&Paste verloren, aber Python benötigt die Einrückung zwingend. Andere Programmiersprachen nutzen geschweifte Klammern, Python benötigt die Einrückung.
Mitglied: adinin
adinin 04.04.2010 um 10:56:13 Uhr
Goto Top
Danke Aron

Ich habe wirklich dieEinrückung vergessen die Punkte aber gemacht weis nicht wo die geblieben sind ^^)

Danke