คำถามติดแท็ก argparse

โมดูล Python สำหรับใช้อินเตอร์เฟสบรรทัดคำสั่ง

9
คุณจะเขียนการทดสอบสำหรับส่วน argparse ของโมดูลหลามได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดเมื่อเดือนที่แล้ว ปรับปรุงคำถามนี้ ฉันมีโมดูล Python ที่ใช้ไลบรารี argparse ฉันจะเขียนการทดสอบสำหรับส่วนของรหัสฐานได้อย่างไร

3
มีตัวเลือกในการโต้เถียงกับเส้นประ
ฉันต้องการจะมีบางตัวเลือกในโมดูล argparse เช่น--pm-exportแต่เมื่อฉันพยายามที่จะใช้มันเหมือนฉันได้รับข้อผิดพลาดที่มีอยู่ไม่แอตทริบิวต์args.pm-export pmฉันจะแก้ไขปัญหานี้ได้อย่างไร เป็นไปได้หรือไม่ที่จะมี-ตัวเลือกบรรทัดคำสั่ง?
154 python  argparse 

2
รับคำสั่งย่อยที่เลือกด้วย argparse
เมื่อฉันใช้คำสั่งย่อยด้วย python argparse ฉันสามารถรับอาร์กิวเมนต์ที่เลือกได้ parser = argparse.ArgumentParser() parser.add_argument('-g', '--global') subparsers = parser.add_subparsers() foo_parser = subparsers.add_parser('foo') foo_parser.add_argument('-c', '--count') bar_parser = subparsers.add_parser('bar') args = parser.parse_args(['-g, 'xyz', 'foo', '--count', '42']) # args => Namespace(global='xyz', count='42') ดังนั้นไม่ได้มีargs 'foo'การเขียนเพียงอย่างsys.argv[1]เดียวไม่สามารถใช้งานได้เนื่องจากโลกที่เป็นไปได้ ฉันจะรับคำสั่งย่อยได้อย่างไร

5
Argparse: อาร์กิวเมนต์ที่ต้องการ 'y' ถ้า 'x' มีอยู่
ฉันมีข้อกำหนดดังต่อไปนี้: ./xyifier --prox --lport lport --rport rport สำหรับอาร์กิวเมนต์ prox ฉันใช้ action = 'store_true' เพื่อตรวจสอบว่ามีอยู่หรือไม่ ฉันไม่ต้องการข้อโต้แย้งใด ๆ แต่ถ้าตั้งค่า--prox ฉันต้องการ rport และ lport ด้วย มีวิธีง่ายๆในการทำเช่นนี้ด้วย argparse โดยไม่ต้องเขียนโค้ดตามเงื่อนไขที่กำหนดเอง รหัสเพิ่มเติม: non_int.add_argument('--prox', action='store_true', help='Flag to turn on proxy') non_int.add_argument('--lport', type=int, help='Listen Port.') non_int.add_argument('--rport', type=int, help='Proxy port.')
118 python  argparse 


8
ตรวจสอบว่ามีการตั้งค่าอาร์กิวเมนต์ที่เป็นทางเลือก argparse หรือไม่
ฉันต้องการตรวจสอบว่าอาร์กิวเมนต์อาร์กิวเมนต์ที่เป็นทางเลือกถูกตั้งค่าโดยผู้ใช้หรือไม่ ฉันสามารถตรวจสอบโดยใช้ isset ได้อย่างปลอดภัยหรือไม่? สิ่งนี้: if(isset(args.myArg)): #do something else: #do something else การทำงานนี้เหมือนกันสำหรับอาร์กิวเมนต์ประเภท float / int / string หรือไม่ ฉันสามารถตั้งค่าพารามิเตอร์เริ่มต้นและตรวจสอบได้ (เช่นตั้งค่า myArg = -1 หรือ "" สำหรับสตริงหรือ "NOT_SET") อย่างไรก็ตามค่าที่ฉันต้องการใช้ในท้ายที่สุดจะคำนวณในภายหลังในสคริปต์เท่านั้น ดังนั้นฉันจะตั้งค่าเป็น -1 เป็นค่าเริ่มต้นแล้วอัปเดตเป็นอย่างอื่นในภายหลัง ดูเหมือนจะงุ่มง่ามเล็กน้อยเมื่อเทียบกับการตรวจสอบว่าผู้ใช้กำหนดค่าหรือไม่
113 python  argparse 

3
ระบุรูปแบบสำหรับอาร์กิวเมนต์อินพุตอาร์กิวเมนต์ python
ฉันมีสคริปต์ python ที่ต้องการอินพุตบรรทัดคำสั่งและฉันใช้ argparse เพื่อแยกวิเคราะห์พวกเขา ฉันพบว่าเอกสารมีความสับสนเล็กน้อยและไม่พบวิธีตรวจสอบรูปแบบในพารามิเตอร์อินพุต ความหมายของการตรวจสอบรูปแบบอธิบายด้วยสคริปต์ตัวอย่างนี้: parser.add_argument('-s', "--startdate", help="The Start Date - format YYYY-MM-DD ", required=True) parser.add_argument('-e', "--enddate", help="The End Date format YYYY-MM-DD (Inclusive)", required=True) parser.add_argument('-a', "--accountid", type=int, help='Account ID for the account for which data is required (Default: 570)') parser.add_argument('-o', "--outputpath", help='Directory where output needs to be stored …


11
Python argparse: สร้างอาร์กิวเมนต์อย่างน้อยหนึ่งอาร์กิวเมนต์
ผมเคยใช้argparseสำหรับโปรแกรมหลามที่สามารถ-process, -uploadหรือทั้งสอง: parser = argparse.ArgumentParser(description='Log archiver arguments.') parser.add_argument('-process', action='store_true') parser.add_argument('-upload', action='store_true') args = parser.parse_args() โปรแกรมไม่มีความหมายหากไม่มีพารามิเตอร์อย่างน้อยหนึ่งตัว ฉันargparseจะกำหนดค่าเพื่อบังคับให้เลือกพารามิเตอร์อย่างน้อยหนึ่งพารามิเตอร์ได้อย่างไร อัพเดท: ตามความคิดเห็น: อะไรคือวิธี Pythonic ในการพารามิเตอร์โปรแกรมที่มีอย่างน้อยหนึ่งตัวเลือก?
96 python  argparse 

3
Python โต้แย้งกลุ่มเอกสิทธิ์ร่วมกัน
สิ่งที่ฉันต้องการคือ: pro [-a xxx | [-b yyy -c zzz]] ฉันลองแล้ว แต่ไม่ได้ผล มีใครช่วยฉันได้ไหม group= parser.add_argument_group('Model 2') group_ex = group.add_mutually_exclusive_group() group_ex.add_argument("-a", type=str, action = "store", default = "", help="test") group_ex_2 = group_ex.add_argument_group("option 2") group_ex_2.add_argument("-b", type=str, action = "store", default = "", help="test") group_ex_2.add_argument("-c", type=str, action = "store", default = "", help="test") ขอบคุณ!
92 python  argparse 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.