Ich denke N317V hat das mit dem "nicht leeren" Ordner überlesen.
Weiß atm nicht ob es ne Möglichkeit gibt eine rmdir ähnliche Methode zu verwenden die force ein Verzeichnis löscht.
Also meine Lösung da oben sollte funktionieren.
Erst werden die Dateien im Ordner gelöscht dann der Ordner.
Es fehlen allerdings die try: except Blöcke, wenn dein Programm dir nicht die exceptions bei Fehlschlägen um die Ohren hauen soll.
Datei suchen, wenn vorhanden dann löschen
danke leute habe schon eine neue möglichkeit gefunden und es funktioniert nun! hier mal mein fertiges programm kann man daran noch was verbessern??? fällt euch was auf?
mfg christoph
mfg christoph
Code: Alles auswählen
# ---------------------------------------------------------------------------
# SDE_TIN_temp.py
# Created on: Mi Jun 13 2007
# (generated by Pueler Christoph)
# ---------------------------------------------------------------------------
# Import system modules
import sys, string, os, arcgisscripting, datetime
# Create the Geoprocessor object
gp = arcgisscripting.create()
print ("--------------------------- Opening Tool: 2D to 3D ---------------------------")
print ("")
now1 = datetime.datetime.now()
print "------------- Calculating started at: " , now1 , "------------"
print ("")
# Check out any necessary licenses
gp.CheckOutExtension("3D")
# Load required toolboxes...
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/3D Analyst Tools.tbx")
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# Local variables...
Delete_succeeded = "false"
TIN_Temp = "C:\\TIN_Temp"
TIN_Temp_2 = "C:\\TIN_Temp"
DHM_Point_fein1 = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_fein1"
DHM_Point_fein2 = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_fein2"
DHM_Point_grob = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_grob"
DHM_Polyline_richtig_Albania = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Polyline_richtig_Albania"
DHM_Polyline_richtig_Greece = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Polyline_richtig_Greece"
DHM_Route_Dissolve = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Route_Dissolve"
DHM_Route = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Route"
DHM_Terrain = "Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Terrain"
print ("-------------------------- Creating TIN local at C:\ -------------------------")
# Process: Create TIN...
try:
gp.Delete_management(TIN_Temp, "Tin")
except:
pass
gp.CreateTin_3d(TIN_Temp, "PROJCS['WGS_1984_UTM_Zone_34N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',21.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]]")
# Process: Edit TIN...
gp.EditTin_3d(TIN_Temp, "'Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_fein1' GRID_CODE <None> masspoints false;'Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_fein2' GRID_CODE <None> masspoints false;'Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Point_grob' B1 <None> masspoints false;'Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Polyline_richtig_Albania' ELEVATION <None> hardline true;'Database Connections\\TAP.sde\\DHM.Test_3D\\DHM.Polyline_richtig_Greece' ELEVATION <None> hardline true")
print (" !!!!! Saving TIN successfully finished !!!!! ")
print ("")
print ("-------------------------------- Merging Route -------------------------------")
# Process: Dissolve...
try:
gp.Delete_management(DHM_Route_Dissolve, "FeatureClass")
except:
pass
gp.Dissolve_management(DHM_Route, DHM_Route_Dissolve, "", "", "MULTI_PART")
print (" !!!!! Merging Route successfully finished !!!!! ")
print ("")
print ("--------------------------- Interpolate_Shape_to_3D --------------------------")
print ("---------------------------- Getting Input Surface ---------------------------")
print ("------------------------- Getting Input Feature Class ------------------------")
print ("----------------------- Exporting Output Feature Class -----------------------")
# Process: Interpolate Shape...
try:
gp.Delete_management(DHM_Terrain, "FeatureClass")
except:
pass
gp.InterpolateShape_3d(TIN_Temp_2, DHM_Route_Dissolve, DHM_Terrain, "", "1", "BILINEAR")
print (" !!!!! Interpolate Shape to 3D successfully finished !!!!! ")
print ("")
print ("------------------------ Deleting TIN from local disk ------------------------")
# Process: Delete...
gp.Delete_management(TIN_Temp_2, "Tin")
print (" !!!!! Deleting TIN successfully finished !!!!! ")
print ("")
now2 = datetime.datetime.now()
print " !!! Tool: 2D to 3D successfully finished after",now2-now1,"!!! "
print ("")
print ("")
print ("------------------------ !!! Press enter to close !!! ------------------------")
wait=raw_input()
``print`` ist keine Funktion, die Klammern um die "Argumente" sehen "komisch" aus.
Den "Quelltext" für die GIS-Anwendung hätte ich nicht auf eine Monsterzeile gepackt.
Und ein ``except:`` ohne eine konkrete Ausnahme sollte man nicht verwenden. Das verschluckt wirklich *alles* und erschwert damit die Fehlersuche ungemein.
Den "Quelltext" für die GIS-Anwendung hätte ich nicht auf eine Monsterzeile gepackt.
Und ein ``except:`` ohne eine konkrete Ausnahme sollte man nicht verwenden. Das verschluckt wirklich *alles* und erschwert damit die Fehlersuche ungemein.
vorallem mehrzeilige Ausgaben sind in der Regel so besser:
Code: Alles auswählen
print """Angefangen mit 3 Anführungszeichen
und
abschließend mit 3 Anführungszeichen"""
Und wie mehrzeilig das ist:mazdafox hat geschrieben:sind nicht mehrzeigig! möchte nur abstände daher das print ""
Code: Alles auswählen
print " !!! Tool: 2D to 3D successfully finished after",now2-now1,"!!! "
print ("")
print ("")
print ("------------------------ !!! Press enter to close !!! ------------------------")
Code: Alles auswählen
mein_text = """ !!! Tool: 2D to 3D successfully finished after %s!!!
------------------------!!! Press enter to close !!! ------------------------"""
print mein_text % str(now2-now1)
Stimmt! Das hab ich nicht gelesen. Ich hatte mich ja schon auf einen viel früheren Beitrag bezogen. Sorry!Zap hat geschrieben:Ich denke N317V hat das mit dem "nicht leeren" Ordner überlesen.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt