Seite 1 von 1

Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 10:36
von sandordan
Hallo Ich bekomme immer die oben genannte Fehlermeldung wenn ich die csv öffnen möchte.

Code: Alles auswählen

with open('H:/Controlling/Py/DB_Mitarbeiter.csv', mode='r') as ifile:

Code: Alles auswählen




with open('H:/Controlling/Py/DB_Mitarbeiter.csv', mode='r') as ifile:
  File "<ipython-input-69-95d3a75e0e49>", line 1
    with open('H:/Controlling/Py/DB_Mitarbeiter.csv', mode='r') as ifile:

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 10:41
von Sirius3
Der Fehler ist, dass ein Block erwartet wird, aber die Datei aufhört. Innerhalb des with-Blocks muß etwas stehen.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 10:51
von sandordan
ich habe darunter alles gelöscht und bekomme ich noch immer diese Fehlermeldung...

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 11:03
von __blackjack__
@sandordan: Die Antwort bleibt die gleiche, in dem ``with``-Block muss etwas stehen, und wenn es nur ein ``pass`` ist oder ``...`` (Syntax für ein `Ellipsis`-Objekt).

Bei CSV-Dateien die mit dem `csv`-Modul vearbeitet werden sollen muss man noch ein ``newlinw=""`` beim öffnen übergeben und man sollte bei Textdateien immer explizit die Kodierung angeben.

Namen sollten keine kryptischen Abkürzungen enthalten. Wenn man `input_file` meint, sollte man nicht nur `ifile` schreiben.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 12:11
von sandordan
Danke Euch könnt Ihr bitte helfen dann wie es aussehen sollte?

Code: Alles auswählen

import mysql.connector
import csv
conn=mysql.connector.connect(user='X',password='Y', database='km_db')
cursor=conn.cursor()

with open('test.csv') as input_file:
file=csv.reader(input_file, delimiter=';')

for row in file:
    cursor.execute("""INSERT INTO test_tbl(name_txt, ID_1 )''VALUES("%s", "%s")', row"""")

mydb.commit()
cursor.close()
print("Done")

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 12:22
von sparrow
Blöcke werden in Python durch Einrückungen gekennzeichnet.
Das with-Statement sorgt dafür, dass etwas in nachfolgenden Block zur Verfügung steht und nach Verlassen des Blocks korrekt geschlossen wird.
Dafür muss nach dem with aber auch ein Block folgen.
Bei dir ist da aber nichts eingerückt.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Dienstag 23. Juni 2020, 12:28
von Sirius3
Benutze keine Abkürzungen: conn -> connection
Dateien für csv müssen mit newline="" geöffnet werden.
Das SQL-Statement ist nicht gültig. mydb wird nirgends definiert.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Donnerstag 25. Juni 2020, 04:16
von sandordan
Ich bin ein Anfänger:) wie sieht es aus wenn ich die csv mit newline="" öffnen möchte?
danke

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Donnerstag 25. Juni 2020, 06:13
von Sirius3
Ungetestet:

Code: Alles auswählen

import mysql.connector
import csv

connection = mysql.connector.connect(user='X',password='Y', database='km_db')
cursor = connection.cursor()

with open('test.csv', encoding='utf8', newline='') as input_file:
    rows = csv.reader(input_file, delimiter=';')
    for row in rows:
        cursor.execute("INSERT INTO test_tbl (name_txt, ID_1) VALUES (%s, %s)", row)

connection.commit()
cursor.close()
print("Done")
Die Tabelle und Felder sind allesamt schlecht benannt. Das tbl hat im Tabellennamen nichts zu suchen. Abkürzungen erst recht nichts. Dass es sich um einer Tabelle handelt, wird schon aus der Position der Verwendung klar. Was soll das txt bei name_txt? ID_1? Um welche ID handelt es sich denn?

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Donnerstag 25. Juni 2020, 07:46
von __blackjack__
Das wäre vielleicht auch ein Fall für `executemany()`.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Donnerstag 25. Juni 2020, 16:48
von sandordan
with open('test.csv', encoding='utf8', newline='') as input_file:
File "<ipython-input-11-ecec768d3349>", line 1
with open('test.csv', encoding='utf8', newline='') as input_file:
^
SyntaxError: unexpected EOF while parsing

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Donnerstag 25. Juni 2020, 19:11
von Sirius3
Soweit waren wir doch schon einmal.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Samstag 27. Juni 2020, 06:28
von sandordan
Ja mit diesem Code geht es auch nicht.

Re: Open - SyntaxError: unexpected EOF while parsing

Verfasst: Samstag 27. Juni 2020, 08:39
von __blackjack__
@sandordan: Der muss halt schon vollständig sein. In Sirius3's Beispiel folgen auf diese Zeile ja noch sieben weitere Zeilen. Die müssen da halt auch stehen wenn Du das an dem Python-Compiler verfüttern willst.