Meminta input pengguna selama eksekusi alat skrip ArcGIS Python?


9

Saya ingin meminta input pengguna setelah semua parameter ditentukan untuk alat skrip. Saya telah melihat banyak posting forum dan pertanyaan pertukaran stack tentang hal ini, dan mereka semua menyimpulkan bahwa itu tidak perlu, tetapi saya pikir kasus saya adalah pengecualian. Saya ingin memberi pengguna kesempatan untuk mengonfirmasi data, seperti berapa banyak set koordinat GPS yang ada. Itu akan menjadi pertanyaan ya / tidak ("apakah data ini jelas salah?"), Dan formulir input parameter alat skrip sepertinya tidak berfungsi dengan baik untuk ini.

Saya tahu event handler Tkinter menyebabkan masalah dengan ArcGIS, dan bingkai lainnya memiliki masalah yang sama. Salah satu solusi yang saya temukan adalah meminta skrip Anda memanggil skrip lain yang berjalan sebagai proses terpisah, dan menampilkan GUI dari proses kedua, tetapi itu tampaknya agak terlalu meretas.


Rupanya wxPython tidak bekerja, tapi itu tidak termasuk dengan python. Saya harus dapat mendistribusikan skrip ini tanpa persyaratan tambahan selain ArcGIS, sehingga tidak akan berfungsi untuk saya.


Untuk memperjelas, penggunaan yang paling penting adalah untuk meminta pengguna ketika validasi perangkat lunak saya tidak dapat memvalidasi data. Misalnya, saya memiliki daftar ID yang ingin saya validasi, tetapi formatnya tidak konsisten. Saya ingin dapat meminta pengguna dengan dialog ya / tidak jika saya tidak dapat memvalidasi dalam perangkat lunak (mis. ID tidak cocok dengan salah satu pola umum). Mungkin saja format ID baru akan dibuat tanpa sepengetahuan saya.


Contoh lain: Saya memiliki file yang berisi, antara lain, tabel waktu mulai & berhenti. Saya ingin memvalidasi setiap baris tabel secara individual, dan menjejalkan semua data itu, ditambah cek lainnya, ke jendela peringatan akan menjadi sangat cepat.


11
Saya akan menyarankan untuk tidak melakukannya. Alat skrip dimaksudkan untuk dapat berjalan tanpa interaksi pengguna setelah Anda menekan "Run". Namun, Anda mungkin dapat memberikan pesan peringatan / kesalahan yang lebih relevan menggunakan kode validasi .
blah238

2
Anda menyebutkan memanggil sub-proses sebagai peretasan, tetapi sejauh mendapatkan input pengguna, saya pikir ini mungkin satu-satunya pilihan Anda jika Anda tetap menggunakan alat skrip python. Cara yang akan saya lakukan, jika saya benar-benar harus memiliki interaksi pengguna dengan alat skrip python, adalah dengan memanggil sub-proses C #. Jika saya ingat, kode python akan berhenti dan menunggu sub-proses untuk menyelesaikan sebelum melanjutkan. Ini memberi Anda kesempatan untuk memasukkan interaksi pengguna dalam jumlah tak terbatas yang dibangun dalam C #. Anda tidak bisa meneruskan objek ke C #, jadi Anda harus mendapatkan data Anda dalam bentuk string.
bluefoot

Meskipun untuk catatan saya setuju dengan blah238
bluefoot

4
Inilah tepatnya validasi dalam alat skrip.
user2856

Saya pikir validasi hanya untuk validasi skrip, dan tidak bisa mendapatkan input pengguna? Bisakah saya menampilkan konfirmasi ya / tidak dari validator, atau hal lain yang akan memiliki efek yang sama?
user14144

Jawaban:


2

Saya tidak yakin, apakah opsi ini dapat bekerja untuk Anda atau tidak, tetapi mungkin Anda dapat berpikir tentang membuat aplikasi ac #.

  1. Lakukan semua interaksi pengguna dan validasi data melalui aplikasi ini.
  2. Setelah memvalidasi semua data, jalankan skrip python.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.