plantilla de reversa con python

Tengo un archivo, lleno de datos en un formato determinado, quiero llenar mi propia estructura de datos con esos datos

por ejemplo, puedo tener un archivo como este:

John - Smith : 0123 children: Sam Kim 

Quiero hacer algo con esa cadena, para extraer los datos, por ejemplo,

 firstName = "John" lastName = "Smith" number = "0123" children = ['Sam', 'Kim'] 

Espero que haya una manera más fácil que usar separadores.

Aquí hay una solución regex:

 >>> import re >>> data = 'John - Smith : 0123\nchildren: \n Sam\n Kim' >>> match = re.match(r'(\w+) - (\w+) : (\d+).*?children:(.*)', data, re.S) >>> match.groups() ('John', 'Smith', '0123', ' \n Sam\n Kim') 

A continuación, puede asignar los grupos a sus variables:

 >>> firstName, lastName, number = match.groups()[:3] >>> children = [c.strip() for c in match.group(4).strip().split('\n')] 

y el resultado …

 >>> firstName 'John' >>> lastName 'Smith' >>> number '0123' >>> children ['Sam', 'Kim']