fehlermeldung in der for-schleife

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
fellfresse
User
Beiträge: 6
Registriert: Donnerstag 2. November 2006, 22:34
Wohnort: Wismar
Kontaktdaten:

Hallo ich habe folgendes Problem.
Ich schreibe ein Script, das mir die zeilenzahl und zeichenanzahl einer datei wiedergibt.

Code: Alles auswählen

zeilen = 0
zeichen = 0
deteiname = '???'

try:
  datei = open(dateiname, 'r')
except IOError:
  print 'Fehler aufgetreten'

for zeile in datei:
  zeichen += len(zeile) #anzahl zeichen zählen
  # in die schleife würde ich gern schreiben:
  zeilen += 1 #zeilen zählen

datei.close()

print zeilen, zeichen
das problem ist, das ich nach der for anweisung irgendwie keine 2 anweisungen angeben kann?!?! eine macht er, aber sobald ich die zweite dazu schreibe gibt es eine fehlermeldung.
kann mir da jemand helfen?

mein weiterer anspruch wäre ja noch der shell das kommando wc (wordcount) zu schicken, aber die tutorials die ich probiert habe haben nich so hingehauen.
hat jemand einen guten link wo erklärt wird wie man an die schell systemkommandos übergibt?

danke für die mühen!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Das sollte auf den ersten Blick aber so funktionieren. Bist du sicher, dass die Zeilen des Schleifenkörpers auch exakt gleich weit eingerückt sind und keine Tabs enthalten sind?
fellfresse
User
Beiträge: 6
Registriert: Donnerstag 2. November 2006, 22:34
Wohnort: Wismar
Kontaktdaten:

mmh, komisch. habe gerade den rechner neu gestartet und nun kommt keine fehlermeldung mehr.
das is schön, denn funktioniert ja alles.

aber kann jemand was zu dem thema sagen, wie ich das mit dem unix tool (wc) bewältige?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

YOGi hat recht, wie wäre es bei solchen Fragen auch das Traceback zu posten? Dann müssen wir hier nicht raten ...

Aber zunächst einmal willkommen im Forum! Du magst für Deine 2. Frage vielleicht hier nachschauen: http://docs.python.org/lib/ipc.html Das ist zumindest ein guter Startpunkt zum weitersuchen. (Gibt es Wikieinträge hierzu? Habe nichts gefunden.)

Noch etwas: So erfährst Du auch, was eigentlich passiert ist als der Fehler auftrat

Code: Alles auswählen

except IOError, msg:
    print "Fehler aufgetreten: " + msg
, wobei ich auch hier kein print benutzen würde. (ist aber ok, finde ich)

Dateinamen mit ??? sind auch nicht so dolle, auch nicht zum Testen.

Gruß,
Christian
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

bin viel zu langsam heute ...
@fellfr... Das glaube ich nicht ;-)
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Die Schleife kannst du auch so schreiben:

Code: Alles auswählen

for zeilennummer, zeile in enumerate(datei):
  zeichen += len(zeile)
print zeilennummer, zeichen
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

fellfresse hat geschrieben:aber kann jemand was zu dem thema sagen, wie ich das mit dem unix tool (wc) bewältige?
Das verraet dir man wc oder wc --help. So:

Code: Alles auswählen

rbreu@zam285:~> wc --lines --chars test.txt
1 6 test.txt
Die Datei hat eine Zeile und sechs Zeichen.
Antworten