Inconsistency with split() - Script, OS, or Package Problem?
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Mon May 9 14:43:09 EDT 2011
On Mon, 09 May 2011 14:10:21 -0400, James Wright wrote:
> Hello,
>
> I have been using a script on several boxes that have been around for a
> while, and everything works just fine. I am finding though, that on
> some new OS installs the script fails with:
>
> Traceback (most recent call last):
> File "render4.py", line 114, in <module>
> create_report_index(each_item)
> File "render4.py", line 25, in create_report_index
> [clean_name, _] = each_value.split('_', 1)
> ValueError: need more than 1 value to unpack
It's a data issue, not an OS or package problem.
Firstly, you don't have to wrap the left hand side in brackets, this
works fine:
>>> each_value = "aaa_bbb_ccc"
>>> clean_name, _ = each_value.split('_', 1)
>>> clean_name
'aaa'
However, if your data has no underscore at all:
>>> each_value = "aaa*bbb*ccc"
>>> clean_name, _ = each_value.split('_', 1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
So you need to allow for the possibility that there is no underscore.
--
Steven
More information about the Python-list
mailing list