Programm fehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

Samstag 28. Oktober 2006, 10:47

Code: Alles auswählen

for i in range(7):
programm = i

pfad = "/home/prince/work/python/"  

dateiname="bla.txt"

datei = pfad+dateiname

out_file = open(datei,"w")

out_file.write(programm)

out_file.close()

print "ende"

Code: Alles auswählen

prince@prince:~/work/python$ py test2.py
  File "test2.py", line 4
    programm = i
                ^
??????
was ist daran falsch ?
cya The_ride
danke für die antworten im vorraus

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 28. Oktober 2006, 10:50

Ja, du hast den Interessanten Teil vom Traceback weggelassen, den Part wo IndentationError steht. Der würde dir verraten, dass du die Zeile programm = i einrücken musst. In Python ist die Einrückung teil der Syntax.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

Samstag 28. Oktober 2006, 10:55

IndentationError: expected an indented block

das hier ?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 28. Oktober 2006, 10:59

The_ride hat geschrieben:IndentationError: expected an indented block

das hier ?
Exakt. Das sagt dir, dass du einen Fehler in der Einrückung hast (indentation).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

Samstag 28. Oktober 2006, 11:22

ahhh

prince@prince:~/work/python$ py test2.py
File "test2.py", line 1
for i in range(7)
^
SyntaxError: invalid syntax

in basic ist das einfacher

n = 15
for i = 0 to n
open "d:/text.txt" for output as #1
print #1 "blablabla" n;
next i
close#1
end

so ungefähr weis nicht mehr genau habe kein basic für linux :-(

zur erklärung was ish eigendlich will

ich habe eine internet seite die hat mehrere files mp3 jpg ....
nun wollte ich das mit wget -r .... aber da ist nen robot
der sich auch nicht mit -robotoff ausschalten lässt
also müßte ich das mit
wget http://www.python-forum.de/images/smile ... iggrin.gif
jede einzelne datei runter laden das sind zu viele :-(
oder kann ich direkt mit einem programm in python sagen lade alle jpg's
alle mp3's runter ????

cya The_ride
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 28. Oktober 2006, 11:40

Jetzt ist es mir zu blöd, alle deine Posts nacheditieren zu müssen, deswegen verlinke ich auf "Was muss ich tun, damit meine Codebeispiele farbig und mit richtiger Einrückung angezeigt werden".

Code: Alles auswählen

for in in range(7):
    print i
geht wunderbar. Basic gibt es übrigens auch für Linux.

Und ja, mit Python kannst du auch alle JPGs und mp3s einer Seite runterladen, erfordert ein wenig Arbeit, ist aber nicht allzu schwer.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
The_ride
User
Beiträge: 16
Registriert: Sonntag 23. April 2006, 14:33

Samstag 28. Oktober 2006, 11:47

ahh das mit dem code wußte ich nicht

Code: Alles auswählen

 print "funzt ja"
danke für die antwort
BlackJack

Samstag 28. Oktober 2006, 11:52

The_ride hat geschrieben: in basic ist das einfacher

n = 15
for i = 0 to n
open "d:/text.txt" for output as #1
print #1 "blablabla" n;
next i
close#1
end
Das ist unlesbarer, auch in BASIC würde jeder Programmierer der das später auch mal lesen und verändern will, den Schleifenrumpf einrücken. Dann hättest Du vielleicht auch gesehen, dass dieser Code einen Fehler enthält: Die Dateien müssen *innerhalb* der Schleife geschlossen werden. Dein ``close`` wird nur einmal ausgeführt. Ausserdem überschreibst Du immer die gleiche Datei, Du solltest sie wenigstens zum erweitern/anfügen öffnen:

Code: Alles auswählen

n = 15
for i = 0 to n
    open "text.txt" for append as #1
    print #1, "blablabla", n
    close #1
next
so ungefähr weis nicht mehr genau habe kein basic für linux :-(
Gibt's aber: FreeBASIC ein QuickBASIC clone, MonoBasic (VB.NET), Bywater BASIC und Gambas fallen mir da so spontan ein.
zur erklärung was ish eigendlich will

ich habe eine internet seite die hat mehrere files mp3 jpg ....
nun wollte ich das mit wget -r .... aber da ist nen robot
der sich auch nicht mit -robotoff ausschalten lässt
Der Robot ist in diesem Fall `wget` und der respektiert es, wenn ein Seitenbetreiber in der entsprechenden Datei "/robots.txt" solche Massendownloads verbietet. Das trotzdem machen zu wollen ist ziemlich unhöflich!
Antworten