เคล็ดลับการจัดการกับ Configuration File ใน Python
18-มี.ค.-20
คัมภีร์เทพ IT
บทความนี้คุณจะได้เรียนรู้ขั้นตอนพื้นฐานที่จำเป็นในการจัดการ Configuration Files ใน Python ในที่นี้จะมุ่งเน้นไปที่ Python Module ที่ชื่อว่า ConfigParser โดยในบทความนี้ จะมาบอกถึง เคล็ดลับการจัดการกับ Configuration File ใน Python
ก่อนอื่นเรามาทำความรู้จักกับ ConfigParser กันก่อน โดย ConfigParser เป็น “…Class ที่ใช้ภาษา Configuration พื้นฐานซึ่งมี Structure คล้ายกับสิ่งที่มีใน ini Files ของ Microsoft Windows คุณสามารถใช้มันเพื่อเขียน Python Program ซึ่ง End Users สามารถปรับแต่งเองได้อย่างง่ายดาย” ตอนนี้เรามาดูเคล็ดลับการจัดการกับ Configuration File กันเลย
1. Setup
ConfigParser Module เป็นส่วนหนึ่งของ Python 3 Library และคุณควรมีติดเครื่องไว้ เมื่อคุณติดตั้ง Python 3 คุณสามารถ Import มันได้อย่างง่ายดาย โดยใช้ Code ดังต่อไปนี้:
หากคุณใช้ Python 2.6–3.5 คุณสามารถลองใช้คำสั่ง Import ดังต่อไปนี้:
นอกจากนั้น หากคุณต้องการเขียน Code ที่สามารถใช้งานได้กับทั้ง Python 2 และ 3 ก็สามารถใช้ Code ต่อไปนี้ได้:
2. File Format
คุณสามารถตั้งชื่อการ Configuration ตามความต้องการของคุณเอง แต่ขอแนะนำให้คุณเก็บ File ให้มีนามสกุลเป็น ini
Configuration File ประกอบด้วย หนึ่งหรือหลาย Sections ที่มีสัญลักษณ์บ่งบอกด้วย วงเล็บเปิดและปิด Header [section_name] โดยแต่ละ Section จะมี Key-Value Entries ที่คั่นด้วยเครื่องหมาย = หรือ : ก็ได้ แต่ในบทความนี้จะขอใช้เครื่องหมาย = รวมทั้งยังสามารถมี Whitespaces ระหว่าง Key-Value Entries ได้ ในกรณีที่คุณต้องการใส่ Comment คุณสามารถใช้เครื่องหมาย # หรือ ; นำหน้า Comment
เรามาดูตัวอย่างหนึ่ง ของ Configuration File กัน:
จากตัวอย่าง เรามี 2 Sections ใน Configuration File และในแต่ละ Section มี Key-Value Entries ของตัวเอง คุณสามารถสร้าง Configuration File ของคุณเอง หรือสร้างมันผ่านการ Coding ก็ได้ ซึ่งเราจะมาเรียนรู้เพิ่มเติมกันในหัวข้อถัดไป
3. Basic API
สิ่งแรกที่เราต้องทำ ก็คือ การเตรียมพร้อม ConfigParser Object
Write
เราสามารถสร้าง Default Section ได้โดยการเริ่มต้น Section ด้วย Dictionary ดังในตัวอย่างนี้
- default - ชื่อของ Section
- “host” : “192.168.1.1” – คู่ของ Key-Value Entry ของ Config File
นอกจากนี้ คุณสามารถเริ่มต้นด้วย Empty Dictionary แล้วเพิ่มบรรทัดอื่น ๆ ในภายหลังได้ ซึ่งมันช่วยเพิ่มความยืดหยุ่นให้แก่เรามากขึ้น เรามาดูวิธีการทำ dev_database Section กัน
- dev_database - ชื่อของ Section
- port – Key ของ Entry
- 22 - Value ของ Entry
เมื่อคุณทำเสร็จแล้ว คุณสามารถเริ่มต้นเขียน Content ลงใน Config File ได้
คุณควรจะสามารถเห็น test.ini File ที่ถูกสร้างขึ้นเมื่อคุณ Run Code
Read
เรามาลองอ่าน Configuration File ที่คุณเพิ่งสร้างขึ้นมา
คุณสามารถระบุ Sections ที่มีอยู่ใน Configuration File ด้วยการเรียกใช้ API ต่อไปนี้
ต่อไป เราสามารถกำหนดชื่อของ Database ได้
- dev_database - ชื่อของ Section
- name - Key ของ Entry
คุณควรจะได้รับ db_test เป็น Output ถ้าคุณต้องการรับ Key-Value Entries ทั้งหมดของ Section ก็สามารถลองใช้ Code ต่อไปนี้เพื่อ Print ค่าทั้งหมดลงใน default Section
Data Type
โดยค่าเริ่มต้นแล้ว Module จะทำการ Parse ข้อมูลเป็น String คุณจำเป็นต้อง Convert พวกมันด้วยตัวเอง หรือไม่ คุณก็สามารถใช้ Getter Method ได้
มี 3 Getter Method ที่คุณสามารถใช้สำหรับการ Convert:
- getint
- getboolean
- getfloat
หรือคุณสามารถลองใช้วิธีอื่นดังข้างล่างนี้:
หากเราสังเกต จะพบว่า Parameter ตัวที่ 2 คือ Key ของ Entry และไม่ใช่ Fallback Result
Fallback
หากคุณต้องการได้ Fallback Result คุณสามารถ Define พวกมันได้ดังนี้:
prod_database จะถูก Return กลับไปเป็น Result ในกรณีที่ไม่พบ Database Key หรือไม่พบ Section
สรุป
เรามาสรุปสิ่งที่ได้เรียนรู้กัน ก่อนอื่นเราเริ่มต้นด้วยการ Setup โดยการเขียน Code ที่ Import เข้ามาเพียงไม่กี่บรรทัด ต่อไปเราสำรวจรายละเอียดของ Format ของ Configuration File ซึ่งประกอบด้วย Section และ Key-Value Entries รวมทั้งแนะนำให้เก็บเป็น File ที่มีนามสกุล ini
จากนั้น เราทดสอบ API พื้นฐานบางอย่างที่มีอยู่ใน Module ซึ่งรวมถึงการเขียน Configuration ไปยัง File และอ่าน Configuration File ที่มีอยู่ เรายังสามารถ Convert ข้อมูลเป็น Data Type ที่ต้องการโดยใช้ Getter Method อีกทั้ง Fallback Parameter สามารถถูกใช้ เพื่อที่จะให้ Fallback Response กลับมาในกรณีที่ไม่พบ Section หรือ Key
ที่มา: https://medium.com/
รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert
อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ
บทความล่าสุด