Thực thi tập lệnh trong cửa sổ Python của ArcMap?


10

Tôi đã viết Python trong trình soạn thảo văn bản của mình để tôi có tập lệnh Python, script.py. Tôi vẫn đang phát triển nó vì vậy chưa muốn đặt nó vào hộp công cụ của mình và hiện tại điều này có nghĩa là sao chép và dán nó từ trình soạn thảo văn bản của tôi vào cửa sổ Python trong ArcGIS Desktop.

Có lệnh nào cho phép tôi gọi nó từ cửa sổ ArcGIS Python không?

Một cái gì đó dọc theo dòng:

run script.py

Có vẻ hợp lý rằng nó nên tồn tại, nhưng có lẽ không.


Bạn đang xây dựng tập lệnh của mình trong trình soạn thảo văn bản? Nhận cho mình ide pyscripter miễn phí, đó sẽ là điều tốt nhất bạn từng làm!
Hornbydd

Câu trả lời:



4

Tôi không chắc về mức độ kinh nghiệm của bạn, nhưng trước khi bạn đi quá xa, bạn sẽ muốn tìm hiểu một số thực tiễn tốt nhất trong Python. Sẽ là thành ngữ hơn, hoặc " Pythonic ", để mô đun hóa mã của bạn thành các hàm / lớp , importmô-đun của bạn và gọi một hoặc nhiều hàm / lớp.

Nếu bạn muốn thực hiện thay đổi và kiểm tra tương tác mô-đun đã nhập, bạn có thể sử dụng reloadchức năng tích hợp.

Sử dụng if __name__ == '__main__'mẹo để bảo vệ quy trình chính của tập lệnh của bạn (mọi thứ khác ngoài nhập, khai báo hàm / lớp và có thể một số khai báo biến cấp mô-đun) khỏi tự động chạy khi nhập mô-đun và chỉ thực hiện logic đó khi chạy trực tiếp tập lệnh, ví dụ từ một dấu nhắc lệnh hoặc thông qua ArcToolbox.

Sau đó, bạn có thể kiểm tra các phần cụ thể của mô-đun của mình bằng cách chỉ cần gọi các lớp / hàm có liên quan.


1
Sau đó, bạn phải đối phó với reload()chức năng và tất cả sự khó chịu của bộ nhớ đệm mô-đun và như vậy trong Python. Nếu bạn đang lặp đi lặp lại viết một số tập lệnh nhỏ trong trình soạn thảo văn bản, thì điều này hơi quá mức.
Jason Scheirer

1
Tôi chưa có vấn đề gì reloadmiễn là tôi tránh sử dụng from module import xhoặc from module import *.
blah238
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.