python 标准库提供distutils.util.split_quoted
和shlex.split
.
是否有任何情况会distutils.util.split_quoted(s)
给出不同的结果shlex.split(s)
?
python 标准库提供distutils.util.split_quoted
和shlex.split
.
是否有任何情况会distutils.util.split_quoted(s)
给出不同的结果shlex.split(s)
?
是的。这些算法不同意空格的定义:shlex
硬编码四个字符' \t\r\n'
,但在正则表达式distutils
中使用。因此,它另外将一些其他字符视为分隔符。string.whitespace
换页:
>>> 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']