Re: Attributtabelle sortieren
Verfasst: Montag 9. August 2010, 12:13
Das ist schlecht. Ich nehme an, dass das innerhalb dieser GIS Umgebung laeuft bzw du darin programmierst? Dann solltest du den Hersteller mal darauf aufmerksam machen, dass er den kompletten Traceback rausruecken sollte, da hilfreich.
1. Hinter der Funktionsdefinition fehlt ein `:`
2. Du solltest die Definition nicht in die Schleife packen, weil sie sonst bei jedem Durchgang neu ausgewertet wird.
3. Die `sorted_table` Abkuerzung solltest du wieder berichtigen.
Und dein Problem ist dann noch Folgendes: Du baust Listeneintraege die aus einem 6-stelligen Tupel oder einem Leerzeichen-String bestehen (wozu denn?!).
Wenn du die Sortierfunktion mal aufrufen wuerdest, wuerde sie beim Leerzeichen-Eintrag auf die Nase fallen, da gibt es naemlich keinen Index 2
1. Hinter der Funktionsdefinition fehlt ein `:`
2. Du solltest die Definition nicht in die Schleife packen, weil sie sonst bei jedem Durchgang neu ausgewertet wird.
3. Die `sorted_table` Abkuerzung solltest du wieder berichtigen.
Und dein Problem ist dann noch Folgendes: Du baust Listeneintraege die aus einem 6-stelligen Tupel oder einem Leerzeichen-String bestehen (wozu denn?!).
Wenn du die Sortierfunktion mal aufrufen wuerdest, wuerde sie beim Leerzeichen-Eintrag auf die Nase fallen, da gibt es naemlich keinen Index 2
Code: Alles auswählen
import arcgisscripting
import operator
import functools
gp = arcgisscripting.create(9.3)
gp.workspace = "C:/Temp"
cur = gp.SearchCursor("Polyline0Punkte.shp", "", "", "FID, FID_DREIEC, ORIG_FID, POINT_X,POINT_Y,POINT_Z,Tri_Index")
liste = list()
for row in iter(cur.next, none):
current_Eintrag = (row.FID, row.FID_DREIEC, row.ORIG_FID, row.POINT_X, row.POINT_Y, row.POINT_Z)
liste.append(current_Eintrag)
def sort_with_index(iterable, index):
return sorted(iterable, key=operator.itemgetter(index))
sort_table = functools.partial(sort_table, index=2)
print sort_table(liste)