Command Line Arguments (CLA) ให้ผู้ใช้ควบคุมพฤติกรรมโปรแกรมจากเทอร์มินัล Python มี 3 วิธีหลัก
1. sys.argv (พื้นฐานที่สุด)
import sys
print(type(sys.argv)) #
print('Arguments:')
for arg in sys.argv:
print(arg)
# รัน: python script.py H E L L O
# script.py
# H
# E
# L
# L
# O
sys.argv[0] = ชื่อสคริปท, sys.argv[1:] = อาร์กิวเมนต์จริง
2. getopt Module (Unix-style)
import getopt, sys
# Short options: -a, -b value, -c:value
opts, args = getopt.getopt(sys.argv[1:], 'ab:c:')
# Long options: --noarg, --witharg=value
opts, args = getopt.getopt(sys.argv[1:], '', ['noarg', 'witharg='])
# ตัวอย่างเต็ม
argv = sys.argv[1:]
try:
opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
print(opts) # [('-m', '2'), ('-h', '')]
print(args) # ['Help', 'H', 'E', 'L', 'L', 'O']
except getopt.GetoptError:
print('Something Wrong!')
sys.exit(2)
3. argparse Module (แนะนำ: ทรงพลังที่สุด)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("string", help="Print the word in upper case")
parser.add_argument("-v", "--verbose", action="store_true", help="Verbose output")
args = parser.parse_args()
print(args.string.upper())
# รัน: python script.py "Hello, pythoN"
# HELLO, PYTHON
argparse Features เด่น
- Positional & Optional arguments
- Type checking (
type=int,type=float) - Default values
- Choices validation
- Auto-generated help (
-h/--help) - Sub-commands (git-style)
parser = argparse.ArgumentParser()
parser.add_argument("input", type=str, help="Input file")
parser.add_argument("-o", "--output", type=str, default="out.txt", help="Output file")
parser.add_argument("-n", "--count", type=int, choices=[1,2,3], default=1)
parser.add_argument("--verbose", action="store_true")
args = parser.parse_args()
print(args.input, args.output, args.count, args.verbose)
เลือกใช้ตัวไหน?
| Module | เหมาะกับ |
|---|---|
| sys.argv | สคริปทเล็ก, ไม่มี option ซับซ้อน |
| getopt | Relocatable C-style, legacy code |
| argparse | โปรเจกต์จริง, CLI tools, ต้องการ help/validation |