Dateipfad per input abfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
saddie
User
Beiträge: 2
Registriert: Sonntag 19. Juli 2020, 15:22

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.
Benutzeravatar
pintman
User
Beiträge: 39
Registriert: Freitag 2. Dezember 2005, 20:43
Kontaktdaten:

Hier scheint das Problem zu liegen:

Code: Alles auswählen

 arcpy.env.workspace = r"WorkspaceVariable"
Das "r" vor einem String interpretiert diesen als raw-string und verhindert damit Probleme mit Maskierungszeichen wie "\".

Klappt es mit dieser Variante?

Code: Alles auswählen

 arcpy.env.workspace = WorkspaceVariable
Vielleicht helfen die folgenden Zeilen:

Code: Alles auswählen

>>> WorkspaceVariable = r"C:\User\Ich"
>>> print(WorkspaceVariable)
C:\User\Ich
>>> print(r"WorkspaceVariable")
WorkspaceVariable
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.

Code: Alles auswählen

workspace = input(r"Bitte geben Sie den Dateipfad ein (Format: C:\Ordner\Datei.gdb): ")
arcpy.env.workspace = workspace
saddie
User
Beiträge: 2
Registriert: Sonntag 19. Juli 2020, 15:22

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
Antworten