On 02/04/2021 11:16, Egon Frerich wrote:
I have a string like

'"ab,c" , def'

and need to separate it into

"ab,c" and "def".

split separates at the first ',':

bl
'"a,bc", def'
bl.split(',')
['"a', 'bc"', ' def']


The initial string looks like it's close enough to the CSV format.
Unfortunately Python's csv module operates on files, not strings -- to
use it you have to wrap the string into a stream:

>>> import csv
>>> import io
>>> next(csv.reader(io.StringIO('"ab,c" , def')))
['ab,c ', ' def']


Apply str.strip() on every part to remove leading and trailing whitespace:


>>> def mysplit(s):
        return [part.strip() for part in next(csv.reader(io.StringIO(s)))]

>>> mysplit('"ab,c" , def')
['ab,c', 'def']

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to