ฉันใช้รหัสง่าย ๆ ต่อไปนี้เพื่อแยกอาร์กิวเมนต์บางอย่าง โปรดทราบว่าจำเป็นต้องใช้หนึ่งในนั้น น่าเสียดายที่เมื่อผู้ใช้รันสคริปต์โดยไม่ได้ระบุอาร์กิวเมนต์ข้อความการใช้งาน / ช่วยเหลือที่แสดงไม่ได้ระบุว่ามีอาร์กิวเมนต์ที่ไม่จำเป็นซึ่งฉันพบว่าสับสนมาก ฉันจะรับไพ ธ อนเพื่อระบุว่าการโต้แย้งนั้นไม่จำเป็นหรือไม่?
นี่คือรหัส:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Foo')
parser.add_argument('-i','--input', help='Input file name', required=True)
parser.add_argument('-o','--output', help='Output file name', default="stdout")
args = parser.parse_args()
print ("Input file: %s" % args.input )
print ("Output file: %s" % args.output )
เมื่อรันโค้ดข้างต้นโดยไม่ต้องระบุอาร์กิวเมนต์ที่ต้องการฉันจะได้ผลลัพธ์ต่อไปนี้:
usage: foo.py [-h] -i INPUT [-o OUTPUT]
Foo
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input file name
-o OUTPUT, --output OUTPUT
Output file name
optional arguments
ไว้สำหรับอาร์กิวเมนต์ที่จำเป็นยังคงทำให้เข้าใจผิด
-i INPUT
ส่วนไม่ได้ล้อมรอบด้วยวงเล็บเหลี่ยมซึ่งความละเอียดบ่งบอกว่าจำเป็นจริง ๆ นอกจากนี้คุณสามารถอธิบายได้ด้วยตนเองผ่านhelp
พารามิเตอร์