Существует ли стандартная функция python для разбора строки в список argv точно так же, как это делает bash в Python?

#python #string-parsing

#python #синтаксический анализ строк

Вопрос:

Рассмотрим следующую строку:

 ./kmux.py  -r 'messenger.* xx'
 

Если kmux.py это скрипт python, и строка выше была передана bash в качестве аргумента, то sys.argv будет следующий список:

 ["./kmux.py", "-r", "messenger.* xx"]
 

Существует ли стандартная функция python, которая примет первую строку и превратит ее в массив?

Я мог бы вручную воспроизвести логику bash в Python, чтобы взять исходную строку и превратить ее в этот массив, но мне любопытно, существует ли такая функция.

Комментарии:

1. shlex.split Работает ли для вас?

Ответ №1:

Используйте shlex пакет по умолчанию следующим образом:

 import shlex
shlex.split("'./kmux.py  -r 'messenger.* xx'")