ArcPy Datei+Parametereingabe

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
Vandeda
User
Beiträge: 1
Registriert: Montag 22. März 2021, 22:12

Hallöchen alle Zusammen,

ich versuche aktuell ein Programm über Arcpy zu entwickeln, bei dem der Nutzer zuerst die einzelne Bezeichnung der zu erstellenden Datei mit Input bennenen kann. Im Anschluss soll eine entsprechende Anzahl an Parameter, ebenso über Input, eingeben werden.

Diese zwei über Input eingegeben Werte sollen dann als Variable gespeichert werden um sie im Anschluss in ein Geoverarbeitungswerkzeug zu laden. Dies sollte vermutlich als Schleifenfunktion geladen werden, da es auch möglich sein sollte, dass mehrere Dateien bearbeitet werden.


Im ersten Schritt sollen dann dann mehrere Dateien als Print aufgelistet sein, die der Nutzer zuvor dynamisch erstellt hat, wie beispielsweise: Datei_100, Datei_300, Datei_999.


# Ueber die Eingabe des Nutzers wird nun die neue Bezeichnung als Variable hinterlegt

Praefix= input("Nun bitte den Namen des neuen Datensatzes eingeben: ")

# Folgt werden in der Variablen "Parameter" die einzelnen Werte gespeichert und als Liste dargestellt.

Parameter = input("Bitte gib nun die verschiedenen Parameter mit einem Leerzeichen getrennt an: ")

print(Parameter.split())

# Jetzt werden die abgefragten Datei mit den jeweiligen Parameter kombiniert und dem Nutzer angezeigt

print(Praefix + "_" + Parameter)


Als Ausgabe kommt aktuell heraus:

Nun bitte den Namen des neuen Datensatzes eingeben: Datei

Bitte gib nun die verschiedenen Parameter mit einem Leerzeichen getrennt an: 500 600 700

['500', '600', '700']

Datei_500 600 700


Das erste Problem bei dem Skript ist, dass nur der erste Teil innerhalb der Liste vollständig beschriftet wird (hier in dem Beispiel Datei_500).

Das nächste Problem ist, wie die einzelnen Werte im folgenden Schritt als Variablen in irgendein Werkzeug (Buffering beispielsweise) geladen werden kann.


Vielen dank für eure Hilfe :)
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Am besten arbeitest du das Python Grundlagentutorial durch: https://docs.python.org/3/tutorial/. Dort steht auch etwas zu for-Statements. Nebenbei solltest du die Namenskonventionen (PEP 8) befolgen, nach denen Variablen klein_mit_unterstrich geschrieben werden.
Fehler bei deinem Beispiel ist, dass du einfach nur dein Präfix, einen Unterstrich und den vollständigen eingegebenen String ausgibst. Dabei willst du die Liste, die du mit split() erzeugst vermutlich an einen Namen binden, sodass du sie weiterverwenden kannst.

Code: Alles auswählen

praefix = "Datei"
werte = input("Bitte gib nun die verschiedenen Parameter mit einem Leerzeichen getrennt an: ").split()
for wert in werte:
    print(f"{praefix}_{wert}")
Wie man grundsätzlich Werte aus Listen in Funktionen bekommt erfährst du ebenfalls im Grundlagentutorial.
Antworten