Piszę Python w moim edytorze tekstów, więc mam skrypt Python, script.py. Nadal go rozwijam, więc nie chcę jeszcze umieszczać go w moim zestawie narzędzi, a obecnie oznacza to kopiowanie i wklejanie go z mojego edytora tekstu do okna Python w ArcGIS Desktop.
Czy istnieje polecenie, które pozwala mi nazywać je z okna ArcGIS Python?
Coś w stylu:
run script.py
Wydaje się logiczne, że powinna istnieć, ale być może nie.
arcpy
arcmap
python-window
Whatahitson
źródło
źródło
Odpowiedzi:
Możesz użyć
execfile
.Na przykład,
źródło
Nie jestem pewien twojego poziomu doświadczenia, ale zanim zajdziesz za daleko, będziesz chciał nauczyć się najlepszych praktyk w Pythonie. Bardziej idiomatyczne lub „ Pythonic ” byłoby modularyzowanie kodu w funkcje / klasy ,
import
moduł i wywołanie jednej lub więcej funkcji / klas.Jeśli chcesz wprowadzić zmiany i interaktywnie przetestować już zaimportowany moduł, możesz użyć
reload
wbudowanej funkcji.Użyj tej
if __name__ == '__main__'
sztuczki, aby zabezpieczyć główną procedurę skryptu (wszystko inne niż import, deklaracje funkcji / klas i być może niektóre deklaracje zmiennych na poziomie modułu) przed automatycznym uruchomieniem po zaimportowaniu modułu i wykonuj tę logikę tylko podczas uruchamiania skryptu bezpośrednio, np. Z wiersz polecenia lub za pomocą ArcToolbox.Następnie możesz przetestować określone części modułu, po prostu wywołując odpowiednie klasy / funkcje.
źródło
reload()
funkcją i całą nieprzyjemnością buforowania modułów itp. W Pythonie. Jeśli iteracyjnie piszesz mały skrypt w edytorze tekstów, to trochę przesada.reload
ile unikam używaniafrom module import x
lubfrom module import *
.