Seite 1 von 1

PyCharm führt Code nicht aus

Verfasst: Montag 20. Februar 2023, 00:52
von nats
Hallo,

wie der Titel schon sagt hab ich ein Problem mit PyCharm.
Genauer gesagt arbeite ich mit der Bibliothek arcpy und einer Shapefile-Datei, in der Gewässer sind.

Ich kann leider nicht verstehen warum der das Update nicht ausgeführt wird. Kann sich das jemand bitte ansehen?!

Code: Alles auswählen


### IMPPORTS ###
import arcpy 

### VARIBALEN ###

fc = r"C:\Users\natal\OneDrive\Dokumente\ArcGIS\Projects\Programmieren_Cursor\Programmieren_Cursor.gdb\stehende_Gewaesser"
gw_lry = "gewaesser"
where_clause = """ ANSPR_BL = 'Burgenland' """
gw_flds = ["NAME", "FLAECHEKM2", "KUENSTLICH"]
where_clause_update = """ NAME = 'k.A.' """

### MAIN ###

# Layer erzeugen
arcpy.MakeFeatureLayer_management(fc, gw_lry, where_clause)
print("Ausgewählte Gewässer im Burgenland: ", arcpy.GetCount_management(gw_lry))

# Beispiel Update Cursor
with arcpy.da.UpdateCursor(gw_lry, gw_flds, where_clause_update) as cursor:
    for urow in cursor:
        urow[0] == "ohne Angabe"
        cursor.updateRow(urow)                #  Diese Zeile wird nicht ausgeführt?!
     

# Prüfen ob die Änderung durchgeführt wurden
with arcpy.da.UpdateCursor(gw_lry, gw_flds) as ucur:
    for urow in ucur:
        print("Überprüfung: ", urow[0])
Bei der Ausgabe haben noch immer Zeilen im Namen "k.A." stehen, das Update wird also nicht ausgeführt.
Hab schon in den vorhandenen Codebeispielen nachgesehen, konnte aber keinen Fehler finden..

Re: PyCharm führt Code nicht aus

Verfasst: Montag 20. Februar 2023, 06:01
von sparrow
Gewöhn dir bitte gleich an, vernünftige Namen zu vergeben. Ich weiß, dass 'gw_lry' für 'großgewachsener larry' steht und 'gw_flds' für 'great work folders'. Aber das Wissen kannst du nicht bei jedem voraussetzen. Und 'jeder' bist auch du, wenn du dir nach einiger Zeit Code erneut anschaust.

Ob Code ausgeführt wird kannst du sehr einfach prüfen, indem du print-Ausgaben im Code platziert und so schaust ob die Stelle erreicht wird.
Du lässt ganz am Ende etwas ausgeben. Du weißt also, dass der Code ausgefügrt wird. Deine Frage ist dann auch eine ganz andere: Ein Wert wird nicht gesetzt.

Zu deinem Problem. Was ist der Unterschied zwischen den beiden Zeilen?:

Code: Alles auswählen

a = 1
a == 1

Re: PyCharm führt Code nicht aus

Verfasst: Montag 20. Februar 2023, 14:22
von nats
danke für den guten Hinweis.
hab ich leider total übersehen, dass ich einen Vergleichsoperator statt einer Zuweisung verwendet hab.. :oops: