Wykonywanie skryptu w oknie Python ArcMap?

10

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.

Whatahitson
źródło
Konstruujesz swój skrypt w edytorze tekstu? Zdobądź darmową ideę pyscripter, będzie to najlepsza rzecz, jaką kiedykolwiek zrobisz!
Hornbydd,

Odpowiedzi:

17

Możesz użyć execfile.

Na przykład,

>>> execfile(r'c:\my\script.py')
Jason Scheirer
źródło
4

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 , importmoduł i wywołanie jednej lub więcej funkcji / klas.

Jeśli chcesz wprowadzić zmiany i interaktywnie przetestować już zaimportowany moduł, możesz użyć reloadwbudowanej 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.

blah238
źródło
1
Następnie musisz poradzić sobie z 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.
Jason Scheirer
1
Nie miałem żadnych problemów, o reloadile unikam używania from module import xlub from module import *.
blah238