পাইথন সহ স্ক্রিপ্ট থেকে প্রস্থান করুন


11

আমি আর্কজিআইএস-এর জন্য পাইথন স্ক্রিপ্ট পেয়েছি যা আমি কাজ করছি এবং আমি প্রয়োজনীয় ডেটা না থাকলে স্ক্রিপ্টটি সরিয়ে দেওয়ার ক্ষমতা রাখতে চাই। আমি একটি সরল উপায়ে sys.exit () চেষ্টা করেছিলাম কিন্তু এটি আর্কম্যাপে একটি ব্যতিক্রম দেয় যা আমি এড়াতে চাই। আমি এই থ্রেডটি পেয়েছি যা চেষ্টা করে ব্লক ব্যবহার করার পরামর্শ দেয়, তাই আমি এই ফাংশনটি তৈরি করেছি:

def quit_script(message):
log_msg(message) # already defined; writes a message to a file
if log_loc:
    output.close() # close the file used with log_msg()
try:
    sys.exit()
except SystemExit:
    pass

দুর্ভাগ্যক্রমে, এটিও কার্যকর হয়নি। ঠিক আছে, এটি আরকম্যাপে ত্রুটিটি আর তৈরি করে না, তবে এটি ভাল, ছেড়েও যায় না। এই মুহূর্তে, আমার কাছে যদি / অন্য বিবৃতিতে আমার কোডের বেশিরভাগ অংশ থাকে তবে এটি কুৎসিত। কারও কি অন্য কোন পরামর্শ আছে?

ধন্যবাদ! ব্রায়ান


তত্ত্বের মধ্যে sys.exit (0) একটি অপারেশন সফলভাবে প্রস্থান করুন - দেখুন msdn.microsoft.com/en-us/library/ms681381.aspx - তবে মাইকেলের মতো আমি আর্কজিআইএসের কাছে নেই তাই এটি আপনাকে কীভাবে বলতে পারলাম না ঘাঁটা।
ওমেনার্স

আপনি সিস্টেমেেক্সিট বাড়াতে চেষ্টা করেছেন? আমার কাছে পাইথন প্রোগ্রাম রয়েছে যেখানে আমি লিখেছিলাম যেখানে ওয়ার্কস্পেসের বৈশিষ্ট্যগুলির একটি তালিকা পাওয়ার চেষ্টা করে যদি আমি এই পদ্ধতিটি ব্যবহার করি এবং যদি এটি একটি খালি তালিকা ফেরত দেয় তবে অন্য কলগুলি সিস্টেমেক্সিট বাড়ায় (দুর্দান্ত কাজ করে - আমার কাছে প্রচুর আছে লগ ফাইল আউটপুট এবং মুদ্রণ খুব চলছে তাই আমি প্রোগ্রামটি কেন উপস্থিত ছিল তা বলতে পারি)। সম্ভবত এটি করার একাধিক উপায় এবং সম্ভবত আরও ভালতর উপায়, তবে এটি আমার প্রত্যাশা / এটি করতে চেয়েছিল তা করে।
তুরস্কগোল্ড

4
আপনি কি এই জিএসই থ্রেডের উদাহরণগুলি

উত্তর:


2

না, চেষ্টা করুন / ব্লকটি বাদে আপনি 'ক্যাচ' করে আপনার প্রস্থান কল পান; সুতরাং আপনার চেষ্টা আপনি এই জাতীয় কিছু করতে হবে:

try:
    if arcpy.Exists(parcelOutput):
    arcpy.AddMessage("Calculating Parcel Numbers")    
except:
    raise sys.exit("Error: " + arcpy.GetMessages(x))

আপনার 'যদি' বিবৃতি ব্যর্থ হয় তবে এটি ফাইল করবে।


ভেবেছিলাম কেবল রান ছাড়া যখন ধরতে ত্রুটি আছে?
ক্রিস স্টেটে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.