اجرای کدهای پایتون با deno

اجرای کدهای پایتون با deno

چطور میتونیم یک اسکریپت از پایتون یا هر چیز دیگه رو با دینو اجرا کنیم؟در دینو این کار با تابع Deno.run انجام میشه, در ادامه این مقاله نحوه کار با این تابع رو بررسی میکنیم.پارامتر های تابع Deno.run باید به صورت یک آبجکت ارسال بشن, که طبق گفته های وبسایت رسمی دینو , حداقل باید شامل آپشنه cmd باشه.فرض کنین که در مسیر پروژه فایل test.py رو ساختیم و تنها کاری که میکنه چاپ کردن متن “Hello world” هستش, حالا یک فایل جاوا اسکریپت با نام index.js میسازیم و کد های زیر رو مینویسیم داخلشconst p = Deno.run({
cmd: [&quotpython3&quot, &quottest.py&quot],
});
console.log(p)
تصویر زیر رو ببینید و به خروجی دقت کنینهمینطور که میبینین اطلاعات پروسس انجام شده رو نشون میدهولی ما خروجی رو میخوایم, درسته؟برای این کار باید یه جوری هدایتش کنیم به خروجی برنامه خودمونتصویر زیر رو ببینید و به تغییراتش توجه کنین خب خب خب !به آبجکت ارسالی به تابع Deno.run دو تا آپشن دیگه اضافه کردیم, با این کار خروجی و خطا ها رو مثل یک لوله به برنامه خودمون متصل کردیم (به جای piped میتونستین عبارت null رو قرار بدین تا نادیده گرفته بشه).توی خط 8 با متد output خروجی رو دریافت کردیم که البته قابل استفاده نیست و باید رمزگشایی بشهبه همین منظور توی خط 9 با استفاده از کلاس TextDecoder و متد decode خروجی استاندارد متن رو برگشت دادیم توی همون متغیر خط 8در خط 11 ارتباط با پروسه رو قطع میکنیم (اگر این خط رو قرار ندین مشکلی پیش نمیاد ولی من جایی خوندم که نوشتن این خط مهمه).در خط 13 هم خروجی استاندار رو در ترمینال چاپ میکنیم, همونطور که میبینین Hello world چاپ شده.نکته اینجاست اگر شما از قصد یک خطا تولید کنین ( مثلا به جای test.py بنویسین tes.py ) و برنامه رو اجرا کنین هیچی چاپ نمیشه, حتی خطا.در این صورت نمیتونیم خطا ها رو مدیریت کنیم و این خیلی بده.نگران نباشین دریافت خطا ها به سادگی دریافت خروجی استاندارده, به تصویر زیر نگاه کنینمن یک خطای عمدی ایجاد کردم و همونطور که میبینین خطا رو نشون میدهکار زیادی نکردم خط 12 و 13 خطا رو دریافت میکنن و خیلی مشابه خط 8 و 9 هستن تنها تفاوتشون در استفاده از متد هستشخط 17 تا 22 هم کاملا مشخصه! در صورت وجود خطا نشونش میده در غیر این صورت خروجی رو نشون میدهراستش خیلی بیشتر میشه توضیح داد ولی زیادی طولانی شد, احتمالا در آینده قسمت دوم رو منتشر میکنم.ممنونم از اینکه این مقاله رو مطالعه کردین.این اولین مقاله من بود, اگر ایرادی داشت عذر میخوام:)

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *