اگر تا حالا تجربه کار کردن با ترمینال لینوکس و یا cmd در ویندوز داشته باشید.حتما متوجه سوییچ هایی شدید که به کمک اون ها نرم افزار ورودی دریافت میکنه و رفتار برنامه به کمک اونها میتونه تغییر کنه.
مثلا به کد های زیر برای که برای لینوکس نوشته شده دقت کنید:
کد زیر باعث ریست شدن کامپیوتر بعد از ۱۰ دقیقه میشه.
#reboot system after 10 min shutdown -r 10
یا مثلا کد زیر باعث خاموش شدن سیستم در لحظه میشه:
#turn off system immediatly shutdown now
یا کد زیر که باعث لغو دستور shutdown میشه:
#Cancle a pending shutdown shutdown -c
میتونید لیست کامل این دستور ها رو با نوشتن (man shutdown) در ترمینالتون ببینید.
خب حالا قصد داریم با پایتون برنامه ای بنویسیم که ورودی هاشو از ترمینال دریافت کنه و بتونیم با استفاده از سوییچ های مختلف مسیر حرکت برنامه رو کنترل کنیم:
خب قواعد بازی چیه؟ ما قراره یک برنامه بنویسیم که یک فاکتور خرید برای ما کامل کنه یعنی یعنی برنامه ما باید این امکان داشته باشه که اسم یک کالا ، تعداد و قیمت به عنوان ورودی از ما دریافت کنه ،لیست و تعداد کالا ها به ما نمایش بده ، و امکان حذف کردن هم داشته باشه و در نهایت بتونه یک لیست کامل به ما بده.
خب شروع کنیم به کد نویسی:
اول از همه کتاب خونه های مورد نیاز برنامه اضافه میکنیم.
import sys from getopt import getopt import json
خب حالا میتونیم با استفاده از کتاب خونه sys ورودی هامون از ترمینال دریافت کنیم:
به این مثال توجه کنید:
#test1.py import sys if __name__ == "__main__": print(sys.argv[1:])
و آن را در ترمینال اجرا میکنیم:
$python3 test1.py inpute1 -s 100 output : ['inpute1', '-s', '100']
خب حالا با استفاده از کتاب خونه ()getopt ورودی های برنامه به شکل key:value تبدیل می کنیم تا دسترسی به انها راحت تر باشد .کد زیر مثال از نحوه استفاده از کتاب خونه ()getopt است.
#test2.py import getopt print (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))
و آن را اجرا میکنیم:
$python3 test2.py output: ([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])
پس به راحتی دربرنامه میتوانیم متوجه شویم که کدام سوییچ ها در کد ما وجود دارند،و مقدار آن ها چیست.
https://gist.github.com/Ehsan-hsr/5ff8625f2c8c4aa8241b166441402a99
#Add $python3 notebook.py -a "name"-"quantity"-"price" #Delete $python3 notebook.py -d "name" #print $python3 notebook -g
امیدوارم که این مطلب برای شما مفید باشه.