#!/bin/python import os, sys import argparse from pprint import pprint parser = argparse.ArgumentParser() file_parser = argparse.ArgumentParser() # Default values for all parameters raw_defaults = ( '''\ nx 512 l_0 4. int_pr 400 tar_lo 0.60 dt 0.0005 sc 0.75 vis 0.020 pre 2.10E+4 ac 26.7 bc 3. u0 0.21 tf 100. dt_uf 0.4 ctmp 0. c_cut 0.001 c_ref 0.01 min_wr 0. prof_wr 1.0 lewis 1.0 lambda1 6.25E+4 lambda2 318E+4 beta1 5 hrp 0.75 le_a 1. le_x 0.20 nsp 2 nrxn 1 ''' ).split() ordered_args = raw_defaults[::2] ordered_values = [] for v in raw_defaults[1::2]: try: ordered_values.append(int(v)) except ValueError: ordered_values.append(float(v)) param_dict = dict(zip(ordered_args, ordered_values)) file_parser.add_argument("--default", help="file containing override default values") file_args, others = file_parser.parse_known_args() if file_args.default is not None: with open(file_args.default) as df: try: for line in df: k, v = line.split()[:2] if k in param_dict: param_dict[k] = v except ValueError: pass for k, v in param_dict.iteritems(): parser.add_argument("--"+k, default=v) args = parser.parse_args(others) params = vars(args) line_new = '{:>12} {}' for a in ordered_args: print line_new.format(a, params[a]) # for i in range(15,60,5): # with open("itape", 'w') as itape: # itape.write(format.format(float(i)/10.0)) # os.system("../../ex &>"+str(i)+".txt")