النهاردة على الفجر كنت بكتب برنامج كدا فالمهم.. اكتشفت قد إيه انا بكره getopt و optparse مش لصعوبة او كدا.. لكن شايف انهم ممكن يكونو اشيك شوية ^_^
فكتبت Command Line Arguments Parser
اها بالمناسبة: انا لاحظت ان فى ناس بتستخدم لغات زى سى وبيرل لمجرد انها تقدم مجرد menu driven program وكل الشغل بيبقة من خلال استخدام حاجة زى system وهكذا.. فمن الآخر shame on you
.. اتعلم shell scripting احسن :gotcha:
نيجى لكيفية الإستخدام
فى ال Module موجود test code كالتالى
اولا وليكن دا ال argS string اللى هيتباصى فى البرنامج
فالأول هتعمل object من ال CommandLineParser كالتالى
لاحظ ان اول arg هى ال List اللى فيها ال args "عملية split بسيطة"
تانى شئ هو boolopts وهى ال options اللى مش هتاخد قيم ولكن هتبقة عبارة عن bool زى مثلا verbose وكدا .. فهنا انا محدد انها -sleeping, -dreaming
فى method فى ال parser بإسم getpassedoptions بتعرض كل ال options اللى اتباصت
فى method فى ال parser بإسم getvalueof وهى بتاخد param 1 وبتعيد قيمة ال option ليك
وإذا ال option مش موجود اساسا فى ال args اللى اتباصيت هيتعمل raise ل OptionNotFoundException
ولإختبار هل option معين اتباصى او لأ.. استخدم ispassed
ال output:
احتمال ادعمها بلغات تانية -حسب الوقت وعدد اللى مش بيحبو getopts, optparse
فكتبت Command Line Arguments Parser
اها بالمناسبة: انا لاحظت ان فى ناس بتستخدم لغات زى سى وبيرل لمجرد انها تقدم مجرد menu driven program وكل الشغل بيبقة من خلال استخدام حاجة زى system وهكذا.. فمن الآخر shame on you

نيجى لكيفية الإستخدام
فى ال Module موجود test code كالتالى
كود:
if __name__=="__main__": s="print -name ahmed -gender male -age 19 -sleeping --file 1.txt -dreaming" parser=CommandLineParser(s.split(), boolopts=["-sleeping", "-dreaming"]) print "Passed options: ", parser.getpassedoptions() print "Name: ", parser.getvalueof("-name") print "Gender: ", parser.getvalueof("-gender") print "Age: ", parser.getvalueof("-age") print "File: ", parser.getvalueof("--file") try: print "SITE: ", parser.getvalueof("-site") except OptionNotFoundException, e: print "Exception: ", e print "Sleeping? ", parser.ispassed("-sleeping") print "Dreaming? ", parser.ispassed("-dreaming")
كود:
"print -name ahmed -gender male -age 19 -sleeping --file
كود:
parser=CommandLineParser(s.split(), boolopts=["-sleeping", "-dreaming"])
تانى شئ هو boolopts وهى ال options اللى مش هتاخد قيم ولكن هتبقة عبارة عن bool زى مثلا verbose وكدا .. فهنا انا محدد انها -sleeping, -dreaming
فى method فى ال parser بإسم getpassedoptions بتعرض كل ال options اللى اتباصت
فى method فى ال parser بإسم getvalueof وهى بتاخد param 1 وبتعيد قيمة ال option ليك
وإذا ال option مش موجود اساسا فى ال args اللى اتباصيت هيتعمل raise ل OptionNotFoundException
ولإختبار هل option معين اتباصى او لأ.. استخدم ispassed
ال output:
Passed options: ['-gender', '-name', '-sleeping', '--file', '-age', '-dreaming']
Name: ahmed
Gender: male
Age: 19
File: 1.txt
Site: Exception: No Such an Option
Sleeping? True
Dreaming? True
Name: ahmed
Gender: male
Age: 19
File: 1.txt
Site: Exception: No Such an Option
Sleeping? True
Dreaming? True
تعليق