В чем разница между distutils.util.split_quoted и shlex.split - PullRequest
0 голосов
/ 05 марта 2019

Стандартная библиотека python предоставляет distutils.util.split_quoted и shlex.split.

Есть ли ситуации, в которых distutils.util.split_quoted(s) дает другой результат, отличный от shlex.split(s)

1 Ответ

0 голосов
/ 29 апреля 2019

Да .Эти алгоритмы не согласны с определением пробела: shlex жестко кодирует четыре символа ' \t\r\n', однако distutils использует string.whitespace в в регулярном выражении .Поэтому он дополнительно рассматривает некоторые другие символы в качестве разделителей.

formfeed:

>>> distutils.util.split_quoted('A\fB')
['A', 'B']
>>> shlex.split('A\fB')
['A\x0cB']

вертикальная табуляция:

>>> distutils.util.split_quoted('A\vB')
['A', 'B']
>>> shlex.split('A\vB')
['A\x0bB']
...