Имитация нормализующих аргументов - PullRequest
0 голосов
/ 05 марта 2012

Если вы передадите такую ​​строку в ваш питон в качестве аргумента программы

my.py name1=abc name2='def' name3="ghi klm"

, тогда sys.args вернет список, подобный этому

['name1=abc', 'name2=def', 'name3=ghi klm']

, поэтому все кавычки будут учтены и удалены.Какая функция в python может принимать строку аргументов и возвращать такой нормализованный список?

Обновление

Input string -> 'name1=abc name2=\'def\' name3="ghi klm"'
Output list -> ['name1=abc', 'name2=def', 'name3=ghi klm']

Ответы [ 2 ]

2 голосов
/ 05 марта 2012

Чтобы разделить аргументы так же, как в оболочке, вы можете использовать shlex.split():

>>> shlex.split("name1=abc name2='def' name3=\"ghi klm\"")
['name1=abc', 'name2=def', 'name3=ghi klm']
0 голосов
/ 05 марта 2012

Какая функция в python может принимать строку аргументов и возвращать такой нормализованный список?

Может быть один, но работа фактически выполняется вашей операционной системой.Интерпретатор Python просто передает список, который он получает от ОС, как sys.args.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...