Hallo beisammen,
ich möchte den Dateipfad aus welchem Daten abgerufen sowie gespeichert werden sollen per input vom Nutzer Abfragen lassen.
Mein Entwurf sieht wie folgt aus:
https://pastebin.com/i0L46YdG
import arcpy
import os
# Ueberschreiben von Daten erlauben
arcpy.env.overwriteOutput = 1
# Abfrage des Dateipfads
WorkspaceVariable = input("Bitte geben Sie den Dateipfad ein (Format: C:\Ordner\Datei.gdb): ")
# Workspace eingeben: hier der Pfad zum Beispieldatensatz (r ermöglicht Eingabe des Pfads ohne doppelten Slash)
arcpy.env.workspace = r"WorkspaceVariable"
# Abfrage ob Pfad vorhanden mit wenn und sonst Ausgabetxt
if os.path.exists (arcpy.env.workspace):
print ("Pfad vorhanden")
else:
print ("Dateipfad " + WorkspaceVariable + " existiert nicht")
RAW Paste Data
Das Ergebniss ist, dass ich immer die Rückmeldung bekomme der Pfad existiert nicht. Ich denke mein Fehler liegt in folgender Zeile:
arcpy.env.workspace = r"WorkspaceVariable"
Auch habe ich schon versucht das ganze zu Verschachteln in dem die Abfrage des Dateipfads gleich mit dem Festlegen des arcpy.env.workspace verknüpft wird:
arcpy.env.workspace = r"input("Bitte geben Sie den Dateipfad ein (Format: C:\Ordner\Datei.gdb): ")"
Aus dies bleibt leider ohne Erfolg.
Wäre sehr erfreut wenn ihr mir den ein oder anderen Tipp geben könntet.
Dateipfad per input abfragen
Hier scheint das Problem zu liegen:
Das "r" vor einem String interpretiert diesen als raw-string und verhindert damit Probleme mit Maskierungszeichen wie "\".
Klappt es mit dieser Variante?
Vielleicht helfen die folgenden Zeilen:
Code: Alles auswählen
arcpy.env.workspace = r"WorkspaceVariable"
Klappt es mit dieser Variante?
Code: Alles auswählen
arcpy.env.workspace = WorkspaceVariable
Code: Alles auswählen
>>> WorkspaceVariable = r"C:\User\Ich"
>>> print(WorkspaceVariable)
C:\User\Ich
>>> print(r"WorkspaceVariable")
WorkspaceVariable
@saddie: das r"" ist nur für den Quelltext da, bei Eingaben werden keine \ als Escapezeichen interpretiert. r"WorkspaceVariable" ist einfach der String, den Du hier angibst und hat nichts mit der Variable mit Namen WorkspaceVariable zu tun.
Der Anhang `Variable` ist ziemlich unsinnig, weil eine Variable immer eine Variable ist.
Der Anhang `Variable` ist ziemlich unsinnig, weil eine Variable immer eine Variable ist.
Code: Alles auswählen
workspace = input(r"Bitte geben Sie den Dateipfad ein (Format: C:\Ordner\Datei.gdb): ")
arcpy.env.workspace = workspace
Vielen Dank für die raschen Tipps pintman und Sirius3!
Ihr habt recht das r plus die " waren das Problem und ich dachte mit raw string würde ich es besonders elegant lösen dabei hab ich mir eine Falle gestellt...
arcpy.env.workspace = WorkspaceVariable
funkioniert
Ihr habt recht das r plus die " waren das Problem und ich dachte mit raw string würde ich es besonders elegant lösen dabei hab ich mir eine Falle gestellt...
arcpy.env.workspace = WorkspaceVariable
funkioniert