พื้นฐาน 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พร้อมอาร์กิวเมนต์ตามตำแหน่งและอาร์กิวเมนต์--optionaltype,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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน argparse
- คำสั่งย่อยและตัวเลือก
- ไลบรารี Click
- ผลลัพธ์เทอร์มินัลแบบสวยงาม