So I have my main.py script which essentially will run certain conditional statements based on what is passed on the command-line. For example , if I use main.py -t, this will run test mode. If I run main.py -j /testdata -c 2222-22-22 -p 2222-22-22 this will run default mode and so on.
How can I stop passing in the flags on command line and be able to run my code, so rather than using the flags -j , -c and -p , I can just pass the values normally .
My code is as follows so far :
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-c", "--execute-cur-date", action="store", required=False)
parser.add_argument("-p", "--execute-pre-date", action="store", required=False)
parser.add_argument("-j", "--execute-json-path", action="store", required=False)
parser.add_argument("-t", "--execute-test", action="store_true", required=False)
args = parser.parse_args()
if args.execute_test:
testing()
elif args.execute_json_path and args.execute_cur_date and args.execute_pre_date:
argparseacceptspositionalarguments, ones that depend entirely on position (order) rather than flags. But with those you have to provide all values, in the order defined by parser. Or you could just parse thesys.argvlist yourself.sys.argvyou just get a list of strings, and your own code has to decide which means what. Stick with the flagged version if that confuses you,-tif you aren't doing anything when those flags are present?