קוד: |
parser = argparse.ArgumentParser() parser.add_argument("list") # parser.add_argument("init") args = parser.parse_args() if args.list: loadDefinitions() printDefinitions() # elif args.init: # loadDefinitions() # TOOD - create standard init file for project |
e : |
אם אני מבין נכון הגדרת לו שני פרמטרים שהם positional, אם מועבר רק פרמטר אחד איך הוא אמור לדעת לאיזה מהם התכוונת? |
mksoft : |
סבבה.
זה לא ארגומנט אופציונלי, אלא ארגומנט של פקודה עם אפשרויות של list ו-init. הגדר positional argument בודד, עם choices שלהם: https://docs.python.org/3/library/argparse.html#choices נ.ב. אל תפרסר בעצמך, ניסיתי את השטות הזו פעם, חבל על העבודה. |
elcuco : |
האם אני יכול להגדיר optional argument עבור כל option שונה? |
קוד: |
parser = argparse.ArgumentParser()
parser.add_argument('-rd', '--recursive-dirs',nargs='*', dest='recursive_dirs', help='recursive directories') parser.add_argument('-fd', '--flat-dirs',nargs='*', dest='flat_dirs', help='flat directories') parser.add_argument('-exd', '--exclude-dirs', nargs='*', dest='exclude_dirs', help='exclude directories') parser.add_argument('-exf', '--exclude-files', nargs='*', dest='exclude_files', help='exclude files') parser.add_argument('-od', '--out-dir',nargs='?', dest ='out_dir', help='output files directory', default='.') parser.add_argument('-re', '--path-re',type=str, dest='path_match_expression', help='path match regular expression', required=True) parser.add_argument('-csv', '--csv-files', nargs='*', dest ='csv_files', help='csv files') parser.add_argument('-crd', '--csv-root-dirs', nargs='*', dest ='csv_paths_root_dirs', help='csv paths root dirs') parser.add_argument('-ty', '--types', nargs='*', dest='file_types', help='file types', default='*') parser.add_argument('-nl', '--no-links', dest='no_links', action='store_true', default=False) args = parser.parse_args() if args.recursive_dirs is None and args.flat_dirs is None and args.csv_files is None: parser.error("at least one of -rd, -fd or -csv required") ... |
Anonymous : | ||
נדמה לי שמה שאתה מחפש זה Sub-commands https://docs.python.org/3/library/argparse.html#sub-commands |
elcuco : | ||||
תודה - נראה שזה זה. הניסיון שלי עם פייתון קצת לוקה בחסר... אבל אני מתחיל להבין את העיניין. ואם אני כבר כאן... עוד שאלה: אני עובד עם עורך טקסט מוצמד לצד ימין של המסך, ומסוף בצד ימין. אני עובר ביניהם ומקווה לטוב. זה עושה לי סחרחורת (אפקטים מיותרים חלק מהזמן) ואני צריך השלמת טקסט. ולראות תיעוד בו זמנית. איך עובדים עם פיית'ון הילדים הגדולים? (אני כבר יודע מה מאיר יגיד לי). |
elcuco : | ||||
תודה - נראה שזה זה. הניסיון שלי עם פייתון קצת לוקה בחסר... אבל אני מתחיל להבין את העיניין. ואם אני כבר כאן... עוד שאלה: אני עובד עם עורך טקסט מוצמד לצד ימין של המסך, ומסוף בצד ימין. אני עובר ביניהם ומקווה לטוב. זה עושה לי סחרחורת (אפקטים מיותרים חלק מהזמן) ואני צריך השלמת טקסט. ולראות תיעוד בו זמנית. איך עובדים עם פיית'ון הילדים הגדולים? (אני כבר יודע מה מאיר יגיד לי). |
mksoft : |
אתה יכול לעבוד עם IDE כמו PyCharm, שהוא מאוד פופולרי, יש לו community edition, הרישיון שלו לא יקר מדי בכל מקרה: https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html |
elcuco : |
אני מחפש משהו יותר חופשי. |