У меня есть программа в python 2.7, которая принимает параметры командной строки с использованием argparse
, однако если я попытаюсь ввести строку, содержащую амперсанд, я потеряю символы после этого амперсанда.Как обрабатывать амперсанд как часть аргумента командной строки в python
Например:
У меня есть простая программа питона только для проверки ввода аргументов командной строки и просто выводит то, что было введено для одного параметра командной строки.
По существу: print args.where
Когда я запускаю программу, с аргументом, как это:
$ python args.py -a http://www.website.com?optionone=one&numbertwo=two
только текст выводится на экран является: http://www.website.com?optionone=one
У меня есть аналогичные результаты при использовании sys и printIng с использованием Argv
Как я могу получить полный набор строк д?
я заметил, что котировки сделал работу правильно, но забыл упомянуть, что в этом вопросе. Их нет в использовании? – John
@ Джон, вы использовали двойные кавычки или сингл? IIRC, одинарные кавычки должны защищать амперсанд ... – MattDMo
@John: это зависит от используемой оболочки. Если оболочка считает амперсанд персонажем со специальным значением для оболочки (как я думаю, почти все они делают - даже 'cmd.exe' в Windows), тогда вам нужно что-то сделать, чтобы получить оболочку этот символ как часть аргумента. Цитата - один из распространенных способов сделать это, избегая символа (как упоминает Дэниел Скотт) - это другое. –