เวลาที่เราจำเป็นต้องผ่านอะไรซักอย่างเข้าไปในโปรแกรมผ่าน Command Line เราก็จะใช้ argparse กันใช่มั้ยครับ

แน่นอนว่าถ้าทำไม่ค่อยเยอะมันก็คงไม่หนักหนาอะไรมากหรอก แต่ถ้าโปรแกรมเรามี args ให้ผ่านหลายอย่าง ความเจ็บปวดก็จะเริ่มหนักขึ้นเรื่อยๆเพราะมันไม่ได้เขียนง่ายๆเลย

แต่จริงๆแล้วเรามีตัวช่วยที่จะมาช่วยเรา heavy-lifting งานพวกนี้ครับ สิ่งที่มาช่วยนี้ก็คือ fire นั่นเอง


ก่อนอื่นก็ต้องติดตั้งมันก่อนpip install fire

ผมมีแพลนว่าจะทำโปรแกรมง่ายๆที่สามารถจะตอบคำถามเราได้ 2 อย่างคือ วันนี้วันที่เท่าไร แล้วก็บวกเลขง่ายๆ ผ่าน cmd

สมมติผมพิมพ์ไปว่าpython .\testfire.py today

มันก็จะตอบกลับมาได้ว่าวันนี้วันที่เท่าไร

หรือถ้าผมพิมพ์python .\testfire.py add --x 5 --y 4

มันก็จะตอบกลับมาว่า 9 ก็คือผลบวกของ 5 กับ 4

ซึ่งโปรแกรมอย่างนี้ถ้าเราใช้ argparse ทำจะเป็นอะไรที่เจ็บปวดมากๆครับ แต่ถ้าใช้ fire สิ่งที่ทำก็มีแค่นี้import fire, datetimedef today():
   d = datetime.datetime.now().day
   m = datetime.datetime.now().month
   y = datetime.datetime.now().year
   return f'{m}/{d}/{y}'def add(x, y):
   return x + yif __name__ == '__main__':
   fire.Fire()

ผมสร้างฟังค์ชัน today สำหรับการถามวันที่ ฟังค์ชัน add สำหรับบวกเลข

แล้วก็ร่ายมนตร์วิเศษด้วย fire.Fire()

ผลลัพท์

สำหรับข้อมูลเพิ่มเติมสามารถดูได้ที่ github ของไลบรารีได้เลย

google/python-fire
python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any…
Medium ที่ 36
ปีนี้ผมตั้งใจว่าจะเขียน Medium ให้ได้เดือนละ 4–5 Medium ครับ สิ้นปีก็จะมี 52 Medium เท่ากับจำนวนสัปดาห์ใน 1 ปีพอดี ไม่รู้จะทำได้มั้ย แต่ก็ถือเป็น Passion เล็กๆน้อยๆของผมครับ 5555
ผมเขียนบทความหลายแนวแล้วแต่ว่าอยากเขียนยังไง ถ้าอยากให้กำลังใจช่วยกด Clap ให้ซักที สองทีด้วยนะครับ :D
เจอกันบทความหน้าครับ