Ihrem Code:
with open('file.csv', 'r') as my_csv_file:
reader = csv.reader(my_csv_file)
for row in reader:
print (row)
hat falschen Einzug. Es sollte sein:
with open('file.csv') as my_csv_file: # the 'r' mode is implicit
reader = csv.reader(my_csv_file)
for row in reader: # this line shouldn't have been indented
print(row)
Zusätzlich wird die #!/usr/bin/python
wird das Skript mit Python 2, nicht Python 3. Ihr System eine sehr alte Version von Python 2 (2.4 oder früheren) kann ausgeführt werden, die nicht die with
erkennt Kontextmanager. Wenn Sie müssen einen Shebang haben, machen Sie es #!/usr/bin/env python3.5
oder etwas ähnliches. Oder, wenn Sie nicht planen, das Skript als ausführbar zu setzen und es als ./scriptname.py
oder was auch immer laufen zu lassen, werden Sie es ganz los.
Noch eine Sache - nennen Sie nicht Ihre Datei csv.py
, da dies mit dem csv
Modul kollidieren wird. Vermeiden Sie die Benennung von Dateien nach beliebigen Modulen auf Ihrem System. csv_test.py
wäre zum Beispiel eine bessere Alternative.
Die Importanweisung sollte entweder eingerückt oder aus der Funktion entfernt werden. Einrückung ist in Python syntaktisch signifikant. Im Allgemeinen sollten Importanweisungen nicht in Funktionen enthalten sein, sie sollten oben in der Datei stehen. –
Ihr Beispiel hat einen Einrückungsfehler bei 'import csv', bevor es zum Syntaxfehler kommt. Bitte aktualisieren Sie auf ein lauffähiges Beispiel, das den Fehler anzeigt ... einschließlich das Einfügen von '<= SYNTAX ERROR' in einen Kommentar. Wir möchten genau das ausführen, was Sie ausführen. – tdelaney
Die Anweisung "import csv" wurde entfernt. Noch Syntaxfehler. – oradbanj