recent
أخبار ساخنة

مكتبة optparse واهميتها في لغه البايثون Python الدرس |17|

الصفحة الرئيسية

مكتبة optparse لتصميم المدخلات في بايثون

في درسنا اليوم سوف نتحدث عن مكتبة مهمة جداً جداً جداً وهي مكتبة تسمى "optparse" هي تساعدنا بعمل تصميم design للمدخلات inputs الخاصه بالمستخدم.

مثلاً عملنا سكربت خاص في penetration testing اكيد بهذا سوف نحتاج مدخلات لكي نشرح للمستخدم كيفية استخدام هذا السكربت و هذا يكون عبر مكتبة optparse.

مثال
ننشأ ملف على سطح المكتب بإسم script.py.
from optparse import OptionParser
parser = OptionParser ("""
#هنا نكتب تعريف للسكربت الخاص بنا مثلا
My Tool is designed for penetration testing
we need the website url and data
      """) 
parser.add_option("-u","--url",dest="target_url",help="target url",deault="https://www.programmer-tech.com")
parser.add_option("-d","--data",dest="target_data",help="target data",deault="my data")
(options,args) = parser.parse_args()
if options.target_url == None and options.target_data == None:
       print (parser.usage)
       exit(0)
else:
      print("{0}:{1}".format(options.target_url,options.target_data))
 
اضفنا في مثالنا خيارات options وهي parser الذي عرفّناه مسبقاً و استخدمنا معه الارجيومنت المطلوبة وهي :

  • الــ u- هي اختصار لل url المطلوبة من المستخدم.
  • الــ u-- اذا نريد من المستخدم وضع url كاملاً.
  • الــ dest نتعامل معه كمتغير.الــ help للدخول للمساعدة.
  • الــ default الافتراضي.
  • الــ d- اختصار ل data.
  • الــ data-- وضع data كاملة.

نستطيع اضافة خيارات اكثر من اثنان حسب طلبنا ويكون بنفس المضمون السابق, وبعدها حددنا المدخلات args المطلوبة عبر options.args و عينّنا له المدخلات الخاصة في parser وتخزينها كلها في options.args ووضعنا شرط عبر if و عيننا قيم فارغه لـ target data و target url وقلنا له اطبع لنا الاستخدام parser.usage و الخروج من السكربت.
ووضعنا else بحال اذا المستخدم ادخل الخيارات و url مع بعض وقلنا له اطبع لنا القيم كاملة و استخدمنا هنا format شرحناها مسبقاً.

تشغيل السكربت الذي كتبناه سابقاً
عند تشغيل هذا الاسكربت حاليا سوف تكون النتيجة.

https://www.programmer-tech.com :my data

نلاحظ انه طبع لنا قيم الـ default
 

مجموعة خيارات option group

اذا كان لدينا مجموعه خيارات options خاصة بشيئ معين, فيلزم وضع شرح لها وحدها مثل الأدوات الكبيرة يلزم وضع لها اكثر من options وسنستخدم في هذا option group, سوف نعطي import للكل أولاً عبر وضع نجمه *.

مثال
from optparse import *
parser = OptionParser ("""
هنا نكتب تعريف للسكربت الخاص بنا مثلا
My Tool is designed for penetration testing
we need the website url and data
      """) 
parser.add_option("-u","--url",dest="target_url",help="target url",deault="https://www.programmer-tech.com")
parser.add_option("-d","--data",dest="target_data",help="target data",deault="my data")
 #---------Advanced Group
new_group = OptionGroup(parser,"advanced options","some options for advanced usage")
new_group.add_option("-p","--payload",dest="target_payload",help="target payload",default="kaissar")
new_group.add_option("-D","--down",dest="target_download",help="target download",default="nidalDZ")
#-------END ADVANCED GROUP
(options,args) = parser.parse_args()
if options.target_url == None and options.target_data == None:
       print (parser.usage)
       exit(0)
else:
      print("{0}:{1}".format(options.target_url,options.target_data))
      print("{0}:{1}".format(options.target_payload,options.target_download))

لا يحتاج لشرح فهو مفهوم كالمثال السابق.
النتيجة كالتالي سيعرضها 
kaissar:nidalDZ

لمزيد من الاستفسارات لا تترددو بسؤالنا بالتعليقات او في قنواتنا.
 
google-playkhamsatmostaqltradent