CSV zeilenweise trennung und in mehre Dateien splitten

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.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

kidchino hat geschrieben:Das hier geht dann aber nicht mehr oder?
print ("Fertig. CSV ist in " + str(index) + " grosse Stuecke mit jeweils " + str(BLOCK_GROESSE) + " Zeilen zerlegt")
Wieso sollte das nicht gehen? Python kennt Sichtbarkeitsgrenzen nur bezogen auf Funktionen und Methoden. `index` kann also nach dem kompletten Durchlaufen der Schleife immer noch weiterverwendet werden, sofern du dachtest, es wäre dann nicht mehr erreichbar. Oder meintest du etwas anderes?
kidchino
User
Beiträge: 91
Registriert: Montag 17. November 2014, 14:18

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Skripttesten\Python_Skripte\csv_splitten.py", line 19, in <module>
    print ("Fertig. " + QUELLE +" ist in "+index+ " CSVs  ist jeweils " + str(BLOCK_GROESSE) + " Zeilen zerlegt")
NameError: name 'index' is not defined
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das kann eigentlich nur sein, wenn die Schleife 0-mal durchlaufen wird. Dann wird `index` nämlich nicht angelegt (sofern es noch nicht vorhanden war). Zum Vergleich mal eine Sitzung aus der Python-Shell:

Code: Alles auswählen

>>> for index in range(0):
...     print('foo')
...
>>> print(index)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'index' is not defined
>>> for index in range(3):
...     print('foo')
...
foo
foo
foo
>>> print(index)
2
Das ist etwas gewöhnungsbedürftig, wenn man es von anderen Sprachen her anders kennt. Aber so funktioniert Python nunmal.
Antworten