[New-bugs-announce] [issue1123] split(None, maxplit) does not strip whitespace correctly

Nir Soffer report at bugs.python.org
Fri Sep 7 03:18:41 CEST 2007


New submission from Nir Soffer:

string object .split doc say (http://docs.python.org/lib/string-
methods.html):

    "If sep is not specified or is None, a different splitting algorithm 
is applied. First, whitespace characters (spaces, tabs, newlines, 
returns, and formfeeds) are stripped from both ends."

If the maxsplit argument is set and is smaller then the number of 
possible parts, whitespace is not removed.

Examples:

>>> 'k: v\n'.split(None, 1)
['k:', 'v\n']

Expected: ['k:', 'v']

>>> u'k: v\n'.split(None, 1)
[u'k:', u'v\n']

Expected: [u'k:', u'v']

With larger values of maxsplits, it works correctly:

>>> 'k: v\n'.split(None, 2)
['k:', 'v']
>>> u'k: v\n'.split(None, 2)
[u'k:', u'v']

This looks like implementation bug, because there it does not make sense 
that the striping depends on the maxsplit argument, and it will be hard 
to explain such behavior.

Maybe the striping should be removed in Python 3? It does not make sense 
to strip a string behind your back when you want to split it, and the 
caller can easily strip the string if needed.

----------
components: Library (Lib)
messages: 55720
nosy: nirs
severity: normal
status: open
title: split(None, maxplit) does not strip whitespace correctly
versions: Python 2.4, Python 2.5, Python 3.0

__________________________________
Tracker <report at bugs.python.org>
<http://bugs.python.org/issue1123>
__________________________________


More information about the New-bugs-announce mailing list