0Pricing
Python Academy · บทเรียน

พื้นฐาน argparse

แยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง

พื้นฐาน argparse เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

ทำไมต้องใช้ argparse

โมดูล argparse (ไลบรารีมาตรฐาน) ใช้สร้าง อินเทอร์เฟซบรรทัดคำสั่งที่ใช้งานง่าย โมดูลนี้แยกวิเคราะห์อาร์กิวเมนต์ ตรวจสอบชนิดข้อมูล และสร้างข้อความช่วยเหลือโดยอัตโนมัติ

import argparse

parser = argparse.ArgumentParser(description='A demo tool')
print(type(parser).__name__)

การสร้างตัวแยกวิเคราะห์

เริ่มต้นด้วยการสร้าง ArgumentParser โดย description จะแสดงในหน้าจอช่วยเหลือที่สร้างขึ้นโดยอัตโนมัติ

import argparse

parser = argparse.ArgumentParser(description='Greet a user')
print('parser ready')

อาร์กิวเมนต์ตามตำแหน่ง

add_argument('name') กำหนดอาร์กิวเมนต์ ตามตำแหน่งที่จำเป็น ในที่นี้เราส่งรายการให้กับ parse_args เพื่อให้ทำงานได้โดยไม่ต้องใช้บรรทัดคำสั่งจริง

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args(['Alice'])
print('Hello,', args.name)

อาร์กิวเมนต์เสริม

ชื่อที่ขึ้นต้นด้วย -- คือแฟล็กเสริม โปรดระบุค่า default สำหรับกรณีที่ผู้ใช้ไม่ได้ส่งค่าให้

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--greeting', default='Hi')
args = parser.parse_args(['--greeting', 'Hey'])
print(args.greeting)
print(parser.parse_args([]).greeting)

อาร์กิวเมนต์ที่มีชนิดข้อมูล

ใช้ type=int (หรือ float เป็นต้น) เพื่อให้ argparse แปลงและตรวจสอบค่าดังกล่าว ข้อมูลนำเข้าที่ไม่ถูกต้องจะแสดงข้อผิดพลาดที่เข้าใจได้ชัดเจน

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args(['--count', '5'])
print(args.count * 2)

แฟล็กค่าบูลีน

action='store_true' จะสร้างแฟล็กที่มีค่าเป็น False โดยค่าเริ่มต้น และเป็น True เมื่อมีการระบุแฟล็ก เหมาะสำหรับสวิตช์อย่าง --verbose

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
print(parser.parse_args(['--verbose']).verbose)
print(parser.parse_args([]).verbose)

ชื่อแบบสั้นและแบบยาว

กำหนดอาร์กิวเมนต์ให้มีทั้งรูปแบบสั้นและแบบยาว เช่น -n และ --name โดยทั้งสองรูปแบบจะกำหนดแอตทริบิวต์เดียวกัน

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default='world')
print(parser.parse_args(['-n', 'Sam']).name)

ตัวเลือกค่า

จำกัดค่าที่อนุญาตด้วย choices โดย argparse จะปฏิเสธค่าที่อยู่นอกเหนือรายการ

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['fast', 'slow'], default='fast')
print(parser.parse_args(['--mode', 'slow']).mode)

ค่าหลายค่าด้วย nargs

nargs='+' รวบรวมค่าตั้งแต่หนึ่งค่าขึ้นไปไว้ในรายการ เหมาะสำหรับการรับข้อมูลนำเข้าหลายค่าพร้อมกัน

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args(['a.txt', 'b.txt', 'c.txt'])
print(args.files)

อาร์กิวเมนต์เสริมที่จำเป็นและความช่วยเหลือ

เพิ่ม required=True เพื่อบังคับให้ต้องระบุแฟล็กเสริม และเพิ่ม help= เพื่ออธิบายแฟล็กนั้นในหน้าจอการใช้งานที่สร้างขึ้น

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--id', required=True, type=int, help='record id')
args = parser.parse_args(['--id', '7'])
print('id is', args.id)

เครื่องมือขนาดเล็กที่สมบูรณ์

เมื่อนำทุกอย่างมารวมกัน ข้อมูลนำเข้าตามตำแหน่ง ตัวเลือกที่มีชนิดข้อมูล และแฟล็กจะกลายเป็น CLI ขนาดเล็กที่ใช้งานได้จริง

import argparse

parser = argparse.ArgumentParser(description='Repeat a message')
parser.add_argument('message')
parser.add_argument('--times', type=int, default=1)
parser.add_argument('--shout', action='store_true')
args = parser.parse_args(['hello', '--times', '2', '--shout'])
text = args.message.upper() if args.shout else args.message
for _ in range(args.times):
    print(text)

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับ argparse

ทบทวน

คุณได้เรียนรู้ พื้นฐานของ argparse:

  • ArgumentParser พร้อมอาร์กิวเมนต์ตามตำแหน่งและอาร์กิวเมนต์ --optional
  • type, default, choices และ required ใช้ตรวจสอบข้อมูลนำเข้า
  • action='store_true' ใช้สำหรับแฟล็ก ส่วน nargs ใช้สำหรับรายการ
  • ระบบสร้างข้อความช่วยเหลือให้โดยอัตโนมัติ

ถัดไป: คำสั่งย่อยและการจัดการตัวเลือกที่ยืดหยุ่นยิ่งขึ้น

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน argparse” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน argparse” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน argparse”

แยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน argparse” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน argparse
  2. คำสั่งย่อยและตัวเลือก
  3. ไลบรารี Click
  4. ผลลัพธ์เทอร์มินัลแบบสวยงาม
← กลับไปที่ Python Academy