الانتقال إلى المحتوى الرئيسي

كيفية جعل وحدة التحكم ليست قريبة بيثون (ويندوز وماك)

عند العمل مع بيثون على أنظمة التشغيل ويندوز وماك ، قد تواجه مشكلة عند إغلاق وحدة التحكم مباشرة بعد اكتمال البرنامج. قد يكون هذا غير مريح إذا كنت بحاجة إلى رؤية نتيجة البرنامج أو قراءة إخراج وحدة التحكم.

في ويندوز ، يمكنك استخدام وحدة وين 32 آبي لوقف إغلاق وحدة التحكم. إذا كنت استدعاء وين 32أبي.وظيفة النوم (5000) ، ستنتظر وحدة التحكم 5 ثوان قبل الإغلاق. يمكنك تغيير قيمة المهلة بالمللي ثانية حسب تقديرك.

على ماك ، يمكنك استخدام الأمر الإدخال () في نهاية البرنامج لانتظار إدخال المستخدم قبل إغلاق وحدة التحكم. عندما يصل البرنامج إلى السطر مع هذا الأمر ، فإنه يتوقف وينتظر أن يضغط المستخدم على إنتر.

ملاحظة: تعمل هذه الطرق فقط في البرامج النصية المؤقتة وهي ضرورية فقط عندما تريد فحص إخراج وحدة التحكم أو رسائل الخطأ. في كود الإنتاج ، تعتبر هذه الأساليب ممارسة سيئة ويمكن أن تسبب مشاكل في البرنامج.

  1. كيفية جعل وحدة التحكم ليست قريبة في بايثون
  2. 1. باستخدام وظيفة الإدخال ()
  3. 2. باستخدام حلقة لا نهائية
  4. 3. باستخدام مكالمات النظام (ويندوز)
  5. 4. باستخدام وحدة الوقت
  6. 5. باستخدام وحدات إضافية
  7. طرق ويندوز
  8. طرق لماك
  9. باستخدام سطر الأوامر
  10. أوامر سطر الأوامر الأساسية:
  11. خيارات سطر الأوامر:
  12. أمثلة على استخدام سطر الأوامر:
  13. باستخدام وحدة المعالجة الفرعية
  14. إضافة تأخير باستخدام الوقت.النوم
  15. باستخدام وحدة أتيكسيت
  16. تشغيل البرنامج النصي من وحدة التحكم باستخدام بيثونو.إكس
  17. إنشاء حلقة لا نهائية
  18. سؤال وجواب
  19. كيف يمكنني التأكد من أن وحدة التحكم في ويندوز لا تغلق نفسها بعد تنفيذ البرنامج?
  20. هل هناك طريقة مماثلة لماك?
  21. كيف يمكنني جعل وحدة التحكم في ويندوز وماك لا تغلق تلقائيا?
  22. هل هناك أي طرق أخرى لمنع وحدة التحكم من الإغلاق?

كيفية جعل وحدة التحكم ليست قريبة في بايثون

في عملية تطوير برامج بايثون ، يصبح من الضروري أحيانا عدم إغلاق نافذة وحدة التحكم من تلقاء نفسها بعد تنفيذ البرنامج. في هذه المقالة ، سننظر في طرق مختلفة لإيقاف وحدة التحكم بحيث لا تغلق مباشرة بعد نهاية تنفيذ البرنامج.

1. باستخدام وظيفة الإدخال ()

أسهل طريقة لمنع وحدة التحكم من الإغلاق هي استخدام وظيفة الإدخال (). تعلق هذه الوظيفة تنفيذ البرنامج وتنتظر إدخال المستخدم. بعد إدخال أي أحرف والضغط على مفتاح الإدخال ، سيستمر البرنامج في التنفيذ وإغلاق نافذة وحدة التحكم.

الإدخال ("اضغط على إدخال لإغلاق البرنامج...")

2. باستخدام حلقة لا نهائية

هناك طريقة أخرى وهي استخدام حلقة لا نهائية تعمل حتى يقاطعها المستخدم بالضغط على مجموعة مفاتيح معينة (على سبيل المثال ، كترل+ج).

بينما صحيح:

تمريرة

تركيبة المفاتيح لمقاطعة حلقة لا نهاية لها قد تعتمد على نظام التشغيل أو إيد الذي يتم تشغيل البرنامج.

3. باستخدام مكالمات النظام (ويندوز)

إذا كنت تستخدم نظام التشغيل ويندوز ، يمكنك استخدام" وقفة " استدعاء النظام. يقوم بإيقاف تنفيذ البرنامج مؤقتا وينتظر الضغط على المفتاح. نتيجة لذلك ، ستظل نافذة وحدة التحكم مفتوحة حتى يضغط المستخدم على مفتاح.

استيراد نظام التشغيل

نظام التشغيل.النظام ("وقفة")

لن تعمل هذه الطريقة على أنظمة التشغيل الأخرى.

4. باستخدام وحدة الوقت

يمكننا استخدام وحدة الوقت لإيقاف تنفيذ البرنامج لفترة من الوقت. على سبيل المثال ، يمكنك استخدام وظيفة السكون () لإيقاف تنفيذ البرنامج مؤقتا لمدة 5 ثوان:

وقت الاستيراد

الوقت.النوم (5)

في هذه الحالة ، ستظل نافذة وحدة التحكم مفتوحة للوقت المحدد.

5. باستخدام وحدات إضافية

بالنسبة للسيناريوهات الأكثر تعقيدا ، مثل إنشاء تطبيقات تفاعلية بواجهة رسومية ، يمكنك استخدام وحدات خاصة تتعامل مع الأحداث وتوقف تنفيذ البرنامج حتى يتم استلام حدث معين.

على سبيل المثال ، وحدة تكينتر لإنشاء برامج مع واجهة رسومية يسمح لنا لعرض نافذة وإدارة أحداثها. في الوقت نفسه ، ستظل نافذة وحدة التحكم مفتوحة حتى يغلق المستخدم النافذة الرسومية.

استيراد تكينتر كما تك

الجذر = tk.Tk()

الجذر.مينلوب()

هذه ليست سوى عدد قليل من الطرق التي يمكنك استخدامها لمنع وحدة التحكم من الإغلاق في بايثون. اختيار واحد الذي هو الأكثر ملاءمة لحالتك الخاصة.

طرق ويندوز

1. باستخدام الأمر "إيقاف مؤقت"

من أسهل الطرق لمنع وحدة التحكم من الإغلاق فور تشغيل البرنامج استخدام الأمر "إيقاف مؤقت". للقيام بذلك ، ما عليك سوى إضافة هذا الأمر إلى نهاية البرنامج النصي الخاص بك:

طباعة ("تم تنفيذ البرنامج بنجاح!")

وقفة

2. تشغيل البرنامج النصي على سطر الأوامر

إذا قمت بتشغيل البرنامج النصي الخاص بك من سطر الأوامر ، فلن يتم إغلاق وحدة التحكم افتراضيا بعد الانتهاء. للقيام بذلك ، فقط افتح موجه الأوامر (كمد.إيكس) ، انتقل إلى مجلد البرنامج النصي باستخدام الأمر " سد " وتشغيل الأمر التالي:

بايثون your_script.py

3. تشغيل البرنامج النصي من المحرر

إذا كنت تعمل مع بيئة تطوير متكاملة (إيد) ، ثم استخدام وظيفة إطلاق البرنامج النصي من إيد نفسها. معظم إيدس لديها زر أو اختصار لوحة المفاتيح التي تسمح لك لتشغيل البرنامج النصي دون إغلاق وحدة التحكم.

4. باستخدام وحدة" مسفرت"

إذا كنت تريد أن يكون المستخدم قادرا على إغلاق وحدة التحكم من تلقاء نفسها ، استخدم وحدة "مسفكرت". للقيام بذلك ، إضافة التعليمات البرمجية التالية إلى نهاية البرنامج النصي الخاص بك:

استيراد مسفرت

طباعة ('اضغط على أي مفتاح لإغلاق وحدة التحكم...')

مسفرت.جيتش()

5. باستخدام حزمة "بينستالر"

إذا كنت ترغب في إنشاء ملف قابل للتنفيذ (.إكس) لمنع وحدة التحكم من الإغلاق بعد التنفيذ ، استخدم حزمة "بينستالر". قم بتثبيته باستخدام الأمر التالي:

بيب تثبيت بينستالر

بعد التثبيت ، انتقل إلى المجلد الذي يحتوي على البرنامج النصي باستخدام الأمر "قرص مضغوط" وقم بتشغيل الأمر التالي:

بينستالر on ملف واحد your_script.py

بعد إنشاء ناجح ، ستتلقى ملفا قابلا للتنفيذ لن يغلق وحدة التحكم بعد تنفيذ البرنامج.

طرق لماك

على ماك ، وهناك عدة طرق لمنع وحدة التحكم من إغلاق بعد الانتهاء من برنامج بيثون. دعونا ننظر إلى بعض منهم:

  1. # إضافة أمر "الانتظار"
  2. تتيح لك مكتبة" العملية الفرعية " تشغيل الأوامر في الجهاز والعمل مع العمليات. لمنع وحدة التحكم من الإغلاق ، يمكنك استخدامها على النحو التالي:

استيراد عملية فرعية

# الرمز الخاص بك

  • # قم بتشغيل الأمر "قراءة" باستخدام مكتبة العمليات الفرعية
  • عملية فرعية.مكالمة ("اقرأ")
  • وبالتالي ، سيتم تعليق تنفيذ البرنامج حتى يضغط المستخدم على "أدخل".

يعتمد اختيار طريقة معينة على متطلبات مشروعك وتفضيلات المطور. اختيار واحد الذي يناسبك والوضع الخاص بك أفضل.

باستخدام سطر الأوامر

  • سطر الأوامر هو أداة مساعدة تسمح لك بالتفاعل مع نظام التشغيل من خلال واجهة نصية. باستخدام سطر الأوامر ، يمكنك إجراء عمليات مختلفة وإدارة الملفات والمجلدات وتشغيل البرامج والبرامج النصية والعمل مع الشبكة وغير ذلك الكثير.
  • ويسمى سطر الأوامر في ويندوز كمد ، وفي ماك ولينكس يطلق عليه محطة.
  • أوامر سطر الأوامر الأساسية:
  • دير-يعرض قائمة من الملفات والمجلدات في الدليل الحالي
  • تغيير القرص المضغوط

كلس (ويندوز)/واضح (ماك ولينكس) دليل-واضح

  1. مكدير (ويندوز)/مكدير (ماك ولينكس) الشاشة-إنشاء مجلد جديد
  2. نسخ (ويندوز) / حزب المحافظين (ماك ولينكس) - نسخ

  3. ديل (ويندوز)/جمهورية مقدونيا (ماك ولينكس) ملف-حذف
  4. رن (ويندوز)/مف (ماك ولينكس) ملف-إعادة تسمية

  5. ملف البداية (ويندوز) / فتح (ماك ولينكس) - افتح الملف أو البرنامج
  6. بينغ (ويندوز) / بينغ (ماك ولينكس) - التحقق من توافر عقدة على الشبكة

  7. خيارات سطر الأوامر:
  8. يمكن أن تحتوي أوامر سطر الأوامر على معلمات مختلفة تم تحديدها بعد اسم الأمر وفصلها بمسافات. بعض الخيارات الشائعة الاستخدام هي:

  9. /? - عرض المساعدة على الأمر
  10. / ق-تنفيذ الأمر في كافة مجلدات المجلد الفرعي

  11. / ص-تنفيذ الأمر بشكل متكرر للمجلدات فقط
  12. / و-تنفيذ الأمر بشكل متكرر للمجلدات والملفات

  13. / س-تنفيذ الأمر دون عرض التأكيد
  14. أمثلة على استخدام سطر الأوامر:

  15. عرض قائمة بالملفات والمجلدات في الدليل الحالي:
  16. دير

تغيير الدليل إلى القرص د:

القرص المضغوط دال:

إنشاء مجلد جديد يسمى "مجلد جديد":

مكدير مجلد جديد

نسخ ملف " ملف.النص "إلى المجلد"مجلد جديد":

نسخ الملف.النص مجلد جديد

حذف ملف " ملف.النص ":

ديل ملف.النص

إعادة تسمية ملف " قديم.النص "في" جديد.النص ":

رن القديمة.النص الجديد.النص

فتح ملف " ملف.النص " باستخدام البرنامج الافتراضي:

ابدأ الملف.النص

التحقق من توافر عقدة مع عنوان إب من 192.168.0.1:

بينغ 192.168.0.1

سطر الأوامر هو أداة قوية للعمل مع نظام التشغيل. تتيح لك معرفة الأوامر الأساسية ومعلماتها إدارة النظام بشكل فعال وأداء المهام المختلفة.

باستخدام وحدة المعالجة الفرعية

توفر وحدة المعالجة الفرعية بايثون فرصا لإطلاق عمليات جديدة والتفاعل معها والحصول على نتائج عملهم. في سياق مهمة تشغيل البرامج الخارجية أو سطر الأوامر ، توفر وحدة المعالجة الفرعية وظائف وفئات ملائمة لإدارة العمليات وتلقي المخرجات وإرسال المدخلات.

تسمى الفئة الرئيسية التي توفرها وحدة المعالجة الفرعية بوبين. يتم استخدامه لتشغيل البرامج الخارجية ويوفر طرقا للعمل مع المخرجات والمدخلات والحالة.

لتشغيل برنامج أو أمر ، تحتاج إلى إنشاء كائن من فئة بوبين وتمرير الأمر ليتم تنفيذها لذلك. يمكن تحديد الأمر كقائمة من السلاسل ، حيث يمثل كل سطر كلمة أو وسيطة منفصلة للأمر ، أو كسلسلة يتم فيها فصل الوسيطات بمسافات.

يوضح المثال التالي كيفية تنفيذ الأمر " صدى مرحبا ، العالم!"في نظام التشغيل ويندوز ، والحصول على انتاجها:

استيراد عملية فرعية

القيادة = " صدى مرحبا ، العالم!"

النتيجة = عملية فرعية.تشغيل (الأمر ، شل = صحيح ، التقاط _ إخراج = صحيح ، نص = صحيح)

طباعة (نتيجة.ستدوت)

يستخدم هذا المثال وظيفة تشغيل () ، الذي ينفذ الأمر المحدد وإرجاع كائن كومبليتدبروسيس تحتوي على معلومات حول نتيجة تنفيذ الأمر. للحصول على إخراج الأمر ، نستخدم السمة ستدوت من كائن كومبليتدبروسيس.

تشير المعلمة=المعلمة الحقيقية إلى أنه يجب تنفيذ الأمر من خلال غلاف نظام التشغيل. تحدد المعلمة الحقيقية التي يجب حفظ إخراج الأمر. تحدد المعلمة النص = صحيح أن إخراج الأمر يجب أن يكون في شكل سلسلة ، وليس في شكل بايت.

توفر وحدة المعالجة الفرعية أيضا وظائف وطرق لتمرير الإدخال إلى أمر وإدارة العمليات الجارية ، على سبيل المثال ، انتظار اكتمال العملية واستلامها.

  • توفر وحدة المعالجة الفرعية قدرات واسعة لإدارة البرامج الخارجية وسطر الأوامر في بايثون. يسمح لك ببدء العمليات وتلقي البيانات ونقلها إليها وإدارة تنفيذها والحصول على النتائج. يتيح لك استخدام وحدة المعالجة الفرعية تنفيذ المهام المختلفة المتعلقة بتشغيل وإدارة البرامج الخارجية وسطر الأوامر بشكل فعال.
  • إضافة تأخير باستخدام الوقت.النوم
  • في كثير من الأحيان ، عند تطوير برامج بايثون ، يصبح من الضروري إنشاء تأخير قبل إجراء العملية التالية. على سبيل المثال ، تحتاج إلى الانتظار بضع ثوان قبل عرض السطر التالي أو قبل تنفيذ بعض كتلة من التعليمات البرمجية. للقيام بذلك ، بيثون لديه وحدة الوقت ، والتي لديها وظيفة النوم.

وظيفة الوقت.النوم يسمح لك لضبط التأخير في ثوان. يتم تمرير معلمة واحدة إليها-عدد الثواني التي يجب تعليق البرنامج فيها.

مثال على استخدام الوقت.وظيفة النوم:

وقت الاستيراد

طباعة ("قبل التأخير")

الوقت.النوم (3) # 3 ثواني

طباعة ("بعد التأخير")

إخراج البرنامج:

قبل التأخير

[الانتظار 3 ثوان]

بعد التأخير

وظيفة الوقت.يمكن استخدام النوم في مهام مختلفة ، على سبيل المثال:

إضافة وقفة بين عمليات معينة لخلق تأثير الانتظار أو العمل في الخلفية.

إنشاء تأخير اصطناعي للتحقق من تشغيل البرنامج في الوقت الفعلي.

تزامن تنفيذ التعليمات البرمجية مع العمليات أو الأجهزة الخارجية.

ومع ذلك ، ضع في اعتبارك أن الاستخدام المفرط للوقت.وظيفة النوم يمكن أن تبطئ البرنامج وجعله أقل استجابة. لذلك ، يجدر استخدام التأخير فقط عند الضرورة ، وإذا أمكن ، مع اختيار المعلمات التي لا تؤثر على الأداء.

باستخدام وحدة أتيكسيت

توفر وحدة أتيكسيت في بيثون وظائف لتسجيل الوظائف التي يجب تنفيذها عند الخروج من البرنامج. يمكن أن يكون هذا مفيدا عندما تحتاج إلى تنفيذ إجراءات معينة قبل إغلاق البرنامج ، مثل إغلاق الملفات المفتوحة أو مسح موارد النظام.

لاستخدام وحدة أتيكسيت ، تحتاج إلى استيراده:

استيراد اتيكسيت

ثم يمكنك تسجيل وظيفة الخاص بك باستخدام طريقة التسجيل () من وحدة أتيكسيت. سيتم استدعاء هذه الوظيفة تلقائيا عند الخروج من البرنامج:

تنظيف مواطنه():

طباعة ("التنظيف قيد التقدم...")

# رمز لتنظيف أو إغلاق الموارد

أتكسيت.تسجيل (تنظيف)

يمكنك تسجيل عدد غير محدود من الوظائف ، وسيتم استدعاؤها بالترتيب الذي تم تسجيله فيه. يمكنك أيضا تنفيذ إجراءات معينة عند تلقي بعض إشارات إنهاء البرنامج ، على سبيل المثال ، عند الضغط على مجموعة مفاتيح كترل+ج:

إشارة الاستيراد

ديف سيغنالهاندلر (إشارة ، الإطار):

طباعة ("تم استلام إشارة إنهاء البرنامج.")

# رمز ل

إشارة معالجة الإشارات.إشارة (إشارة.سيجينت ، سيغنال-هاندلر)

بعد تسجيل وظيفة معالج الإشارة ، سيتم استدعاؤها عند استلام الإشارة المقابلة.

باستخدام وحدة أتيكسيت يسمح لك للتأكد من أن يتم تنفيذ إجراءات معينة عند الخروج من البرنامج ، حتى إذا حدث استثناء أو إيقاف التشغيل غير المنضبط للبرنامج.

مثال على استخدام وحدة أتيكسيت:

استيراد اتيكسيت

تنظيف مواطنه():

مواطنه وداعا():

طباعة ("وداعا!")

  1. أتكسيت.تسجيل (تنظيف)
  2. في نهاية البرنامج ، سيكون الإخراج كما يلي:
  3. وداعا!

وهكذا ، وذلك باستخدام وحدة أتيكسيت يسمح لك بمرونة وموثوقية السيطرة على سلوك البرنامج عند إغلاق ، تنفيذ الإجراءات اللازمة أو حفظ البيانات قبل الخروج.

تشغيل البرنامج النصي من وحدة التحكم باستخدام بيثونو.إكس

بايثون هي لغة برمجة شائعة تسمح لك بإنشاء برامج ونصوص متنوعة. في كثير من الحالات ، خاصة عند كتابة البرامج النصية ، يصبح من الضروري تشغيل البرنامج دون فتح نافذة موجه الأوامر. للقيام بذلك ، في ويندوز وماك ، يمكنك استخدام أداة خاصة تسمى بيثونو.إكس .

، ولكن يقوم بتشغيل البرنامج النصي في الخلفية بدون واجهة مرئية.

لتشغيل برنامج نصي باستخدام بيثونو.إكس تحتاج إلى اتباع هذه الخطوات:

فتح موجه الأوامر (في ويندوز – موجه الأوامر أو بوويرشيل ، في ماك – محطة).

انتقل إلى الدليل حيث يوجد ملف البرنامج النصي. للقيام بذلك ، يمكنك استخدام

مؤتمر نزع السلاح

(تغيير الدليل) الأمر.

أدخل الأمر لتشغيل البرنامج النصي باستخدام بيثونو.إكس . على سبيل المثال ، إذا تم استدعاء البرنامج النصي الخاص بك

script.py

سيبدو الأمر كما يلي:

بيثونو script.py

بعد إدخال الأمر ، سيتم تشغيل البرنامج النصي في الخلفية ولن يفتح نافذة موجه الأوامر. إذا كان البرنامج النصي يقوم ببعض الأعمال ، فسيحدث ذلك في الخلفية ، بدون واجهة مرئية.

بيثونو.إكس ومن المفيد بشكل خاص عند كتابة البرامج النصية التي تعمل في الخلفية ، حاليا ، أو كخدمات. يتجنب فتح نافذة موجه الأوامر ، والتي قد تكون غير مرغوب فيها أو غير مريحة للمستخدم.

نضع في اعتبارنا أن استخدام بيثونو.إكس بدلا من المعتاد

بايثون

قد يكون لها بعض القيود المتعلقة بالوصول إلى موارد النظام ووظائف سطر الأوامر. لذلك ، قبل استخدام بيثونو.إكس تأكد من أن البرنامج النصي الخاص بك لا يعتمد على الوظائف التي قد لا تكون متاحة عند التشغيل في الخلفية.

إنشاء حلقة لا نهائية

لإنشاء حلقة لا نهائية في أحد البرامج ، يمكنك استخدام بنية خاصة سيتم تنفيذها حتى تصبح الحالة خاطئة.

في لغة برمجة بايثون ، يمكن استخدام البناء التالي لإنشاء حلقة لا نهائية:

بينما صحيح:

# التعليمات البرمجية التي سيتم تشغيلها إلى أجل غير مسمى

تمريرة

بينما صحيح:

طباعة ("مرحبا العالم!")

بينما صحيح:

الجواب = المدخلات ("هل تريد الخروج من حلقة? (نعم / لا)")

في هذه الحالة ، سيسأل البرنامج المستخدم عما إذا كان يريد الخروج من الحلقة. إذا قام المستخدم بإدخال "نعم" ، يتم تنفيذ أمر الفاصل ، ويخرج البرنامج من الحلقة.

وظيفة الإدخال ()

لمنع وحدة التحكم من الإغلاق. فقط ضعه في نهاية البرنامج ، وستظل وحدة التحكم مفتوحة حتى تقوم بإدخال البيانات.