5 Python Modules You Should Be Using

16-Aug-23

คัมภีร์เทพ IT

See the original english version Click here!

 

Python นั้นยอดเยี่ยมในตัวมันเอง และคุณจะพบกับความมหัศจรรย์เมื่อคุณได้เข้าสู่โลกของ Module ของ Python มันมี Ecosystem ของ Libraries ทั้งหมดให้คุณใช้งานผ่าน PyPI และ Standard Library และบทความนี้จะมากล่าวถึง 5 Python Modules ที่นำไปประยุกต์ใช้ใน Project ของคุณได้

1. Faker

คุณเคยต้องการ Test Data เป็นจำนวนมากหรือไม่? แม้ว่ามันอาจจะดูน่าสนุกที่จะไปหา Test API ทั่วไปใน Internet แต่สิ่งนี้อาจทำให้คุณเสียเวลาในระยะยาวเพื่อแยกวิเคราะห์แต่ละ Response และสำรวจ API Docs

คุณอาจเคยได้ยินเกี่ยวกับ Faker API มาบ้างแล้ว ซึ่งเดิมทีมันถูกพัฒนาเป็น JavaScript Module แต่ตอนนี้มันถูกเพิ่มลงใน Python แล้วเช่นกัน

การใช้ Faker Module นั้น คุณสามารถสร้าง Fake Data ขึ้นมา เช่น Addresses, Countries และแม้แต่ People หากคุณต้องการทดสอบ Code บางอย่างเกี่ยวกับ Data ของ "User" นี่น่าจะเป็น Module ที่สมบูรณ์แบบในการนำมาใช้งาน

นี่คือวิธีที่เราสามารถเริ่มสร้าง Fake User Data โดยใช้ Module:

การดำเนินการนี้จะทำการ Print Name และ Address ปลอมสำหรับ User ปลอมรายใหม่ของคุณ หากคุณต้องการข้อมูลที่ละเอียดยิ่งขึ้น คุณสามารถดึง Faker Providers อื่น ๆ เข้ามาได้เช่นกัน:

มี Modules มากมายที่มีข้อมูลตั้งแต่บัตรเครดิตและหมายเลขประกันสังคม ไปจนถึง Emoji สิ่งนี้ถือเป็นสวรรค์สำหรับการทดสอบเลยก็ว่าได้ คุณเคยต้องการตรวจสอบว่าคุณแยกวิเคราะห์ Barcodes หรือหมายเลขโทรศัพท์ถูกต้องหรือไม่? เพียงแค่ Load Provider รายนั้นมา แค่นี้ก็เสร็จแล้ว

คุณสามารถตรวจสอบข้อมูลโดยละเอียดเกี่ยวกับ Providers มีอยู่ทั้งหมดได้จาก Official Documentation นี้

2. Pillow

หากคุณทำงานกับรูปภาพประเภทใดก็ตามบน Command-Line หรือใน Python เชื่อว่า Library นี้น่าเป็นสิ่งแรกที่คุณควรเข้าถึง การใช้ Module นี้จะทำให้คุณสามารถ Convert, Manipulate รวมทั้งได้รับรายละเอียดเกี่ยวกับ Image Formats ต่าง ๆ ได้

คุณสามารถใช้งาน Pillow ได้ง่าย สมมติว่า คุณต้องการ Convert ไฟล์จาก PNG ไปเป็น JPG แบบนี้ดูเหมือนจะทำได้ง่ายใช่ไหม?

สิ่งที่คุณต้องทำคือ ส่งไฟล์ PNG ของคุณเข้ามา ทำการ Convert, ทำการ Save แล้วคุณจะได้ไฟล์ JPG ใหม่ที่สวยงาม

Module นี้มีประสิทธิภาพมาก หากคุณมีงานประเภทที่ต้อง Process รูปภาพ และนี่ก็เป็นเพราะคุณสามารถได้รับ Metadata ที่มีรายละเอียดมากในแต่ละไฟล์ได้เช่นกัน บางครั้ง Attributes ของรูปภาพอาจแตกต่างกันไปตามไฟล์แต่ละประเภท และ Pillow จะแสดงให้เห็นว่ามันอยู่ตรงไหน

คุณสามารถดูรายละเอียดใน Documentation ได้ที่นี่

3. Queue

แม้ว่าสิ่งนี้เคยเป็น Third-party Library แต่ตั้งแต่นั้นมาสิ่งนี้ได้ถูกเพิ่มเข้าไปใน Standard Library ของ Python แล้ว ทำให้คุณสามารถใช้งานได้ง่ายยิ่งขึ้น Queue Module ได้จัดเตรียม Thread-Safe Queue เพื่อให้สามารถใส่ Items เข้าไป และดึง Items ออกมาได้เช่นกัน สิ่งต่าง ๆ เข้าที่ปลายด้านหนึ่งและออกมาอีกด้านหนึ่ง ซึ่งก็เหมือนกับ Queue ที่พวกเราใช้กันในชีวิตจริง 

สิ่งนี้มีประโยชน์มากหากคุณกำลังทำงานกับ Multi-Threaded Application เพราะคุณจะไม่พบกับสภาวะ Race Conditions ที่พยายามเข้าถึง Queue จากแต่ละ Thread

เราลองดูตัวอย่างง่าย ๆ นี้ด้วย Threads 2 ตัวนี้:

ในตัวอย่างนี้ Thread แรกจะใส่ตัวเลขบางตัวจาก Range ลงไปใน Queue จากนั้น Thread จะหยุดพักในระหว่างการดำเนินการของ Thread ตัวอื่น ๆ เพื่อชะลอ Action ลงเล็กน้อย ซึ่งจะทำให้เรามองเห็นชัดยิ่งขึ้น

Thread ตัวที่สอง รับตัวเลขจาก Queue ตราบใดที่ Queue ไม่ว่างเปล่า สิ่งนี้จะทำการ Print แต่ละหมายเลข ที่ถูกใส่ลงใน Queue จาก Thread อื่น ๆ

ตัวอย่างนี้แสดงให้เห็นว่า Queue Module มีประโยชน์อย่างไรสำหรับการทำงานกับข้อมูลที่ถูกใช้งานร่วมกัน Thread ที่เป็นอิสระต่อกันหลาย ๆ Thread สามารถแชร์ Queue เดียวได้ เพื่อจะได้ไม่ต้องเสี่ยงต่อการเกิด Errors เมื่อเข้าถึงอีกด้วย

4. BeautifulSoup4

Python นั้นดีสำหรับหลายสิ่งหลายอย่างในการทำอะไรที่นอกกรอบ Web Scraping ไม่ใช่หนึ่งในนั้น คุณจะต้องการตัว HTML Parser ที่มีประสิทธิภาพหากคุณต้องการทำงานกับ Web Page Schema และเพื่อสิ่งนี้ คุณควรเลือกใช้ BeautifulSoup4

Module นี้จะทำให้คุณสามารถเชื่อมต่อกับ Raw HTML ของ Web Page ได้ คุณสามารถทำเรื่องสนุก ๆ เช่น ค้นหา Elements, Copy พวกมัน และแม้แต่เริ่มเขียน Content ใหม่ได้ทันที ลองนึกภาพการสร้าง Website ยอดนิยมใน Fake Version ของคุณเองดูสิ

มาดูกันว่า เราจะได้ HTML จาก Web Page โดยใช้ Module นี้ได้อย่างไร:

คุณจะเห็น Raw HTML จำนวนมากที่ถูก Print ไปยัง Console เมื่อคุณทำการ Run พวกมัน ถึงจะยอดเยี่ยม แต่มันก็ยังไม่ได้แสดงพลังที่แท้จริงของ BeautifulSoup4

แล้วจะทำอย่างไร ถ้าเราต้องการค้นหา Elements บน Page?:

เมื่อคุณ Run Snippet ด้านบนนี้ คุณควรเห็นเพียงแค่ <title> Element ที่ปรากฏขึ้น ตอนนี้คุณสามารถเริ่มเห็นความเป็นไปได้ทั้งหมดด้วยการใช้ BeautifulSoup4 แล้ว 

Module นี้เหมาะสำหรับการ Scrap ข้อมูลที่สำคัญจาก Websites ที่อาจไม่มี API ให้ แต่โปรดทราบว่า การดำเนินการนี้อาจละเมิดข้อกำหนดการใช้งานสำหรับบางองค์กรได้ หากคุณทำการ Scrape Web Pages บ่อยเกินไป IP ของคุณอาจถูกแบนได้เช่นกัน ขอให้อย่าลืมข้อนี้!!!

คุณสามารถตรวจสอบ Official BeautifulSoup Website เพื่อดูข้อมูลเพิ่มเติมได้ที่นี่

5. Click

หากคุณเคยทำงานกับ Python มาระยะหนึ่งแล้ว บางทีคุณอาจรู้จัก Argparse Module และ Optparse Module นี่เป็นวิธีการที่ลองใช้มาหลายครั้งและพิสูจน์แล้วว่าใช้ได้ผลจริงสำหรับการสร้าง Command-Line Interfaces ใน Python แต่ Modules เหล่านี้อาจไม่มี Syntax ที่สวยงามมากมายอะไร พวกมันถูกสร้างและใช้งานมาระยะหนึ่งแล้ว และการตั้งค่าก็อาจจะมีความยุ่งยากสักเล็กน้อยหากคุณชอบที่จะทำอะไรง่าย ๆ

นี่จึงเป็นที่มาของการเกิด Click Module มันเป็นวิธีที่เรียบง่ายและยอดเยี่ยมในการใช้ Decorator Syntax สมัยใหม่เมื่อกำหนด Command-Line Arguments ในการใช้ Module นี้ คุณจะสามารถตกแต่ง Functions ที่มีอยู่ของคุณ และ Parser ก็จะจดจำ Functions เหล่านั้นได้อย่างน่าอัศจรรย์

นี่คือตัวอย่างง่าย ๆ จาก Official Click Documentation:

Function เดียวในไฟล์นี้ก็คือ hello Function ซึ่งหมายความว่า คุณไม่จำเป็นต้องเสียเวลาในการป้อน Boilerplate Argument Setup ใด ๆ ให้ยุ่งยาก เพียงแค่ตกแต่ง Function พิเศษด้วยรายละเอียดที่ต้องการ เท่านี้ก็เสร็จแล้ว

ที่มาhttps://levelup.gitconnected.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด