Dividir una cadena con un número desconocido de espacios como separador en Python

Necesito una función similar a string.split (”) pero puede haber más de un espacio, y un número diferente de ellos entre los caracteres significativos. Algo como eso:

s = ' 1234 Q-24 2010-11-29 563 abc a6G47er15 ' ss = s.magicSplit() print ss ['1234','Q-24','2010-11-29','563','abc','a6G47er15'] 

¿Puedo usar expresiones regulares para capturar esos espacios en medio?

¿Podría alguien ayudar, por favor?

Tratar

 >>> ' 1234 Q-24 2010-11-29 563 abc a6G47er15'.split() ['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15'] 

O si quieres

 >>> class MagicString(str): ... magicSplit = str.split ... >>> s = MagicString(' 1234 Q-24 2010-11-29 563 abc a6G47er15') >>> s.magicSplit() ['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15'] 
 s = ' 1234 Q-24 2010-11-29 563 abc a6G47er15 ' ss = s.split() print ss ['1234','Q-24','2010-11-29','563','abc','a6G47er15'] 

Si tiene espacios individuales en medio de sus datos (como una dirección en un campo), aquí hay una solución para cuando el delimitador tenga dos o más espacios:

 with open("textfile.txt") as f: content = f.readlines() for line in content: # Get all variable-length spaces down to two. Then use two spaces as the delimiter. while line.replace(" ", " ") != line: line = line.replace(" ", " ") # The strip is optional here. data = line.strip().split(" ") print(data)