python标准库提供了distutils.util.split_quoted
和shlex.split
。
是否存在distutils.util.split_quoted(s)
与shlex.split(s)
给出不同结果的情况?
答案 0 :(得分:2)
是。这些算法在空格的定义上存在分歧:shlex
对四个字符' \t\r\n'
进行硬编码,但是distutils
在string.whitespace
中使用a regex。因此,它还将其他字符视为分隔符。
换页:
>>> 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']