Как насчет использования sys.argv
?
sys.argv
возвращает список аргументов, переданных вашему сценарию, через пробел, с sys.argv[0]
, являющимся именем сценария.
Так для следующей программы:
import sys
print sys.argv
при запуске следующим образом:
python script.py inputfile outputfile --RandomLine1 2 --RandomLine3 2
будет выдавать следующий вывод:
['script.py', 'inputfile', 'outputfile', '--RandomLine1', '2', '--Randomline3', '2']
Если вы хотите создать словарь строк и соответствующих аргументов, попробуйте что-то вроде следующего:
# Get portion of list that isn't the script name or input/output file name
args = sys.argv[3:]
args_dict = {}
i = 0
while i < len(args):
if args[i].startswith('--'):
line = args[i].replace('--', '')
try:
args_dict[line] = int(arg[i+1])
except IndexError:
print "%s has no argument" % line
i += 1
Для вашего входного примера мы получим args_dict == {'RandomLine1': 2, 'RandomLine3': 2}
.Я думаю, довольно легко понять, как использовать словарь для любых целей.
Приведенный выше код, конечно, можно выполнить более / менее тщательно, в зависимости от того, насколько надежным вы ожидаете ввода.