311 votes

Split une chaîne par des espaces--préserver cité sous-chaînes--en Python

J’ai une chaîne qui est comme ceci :

Je suis en train d’écrire quelque chose en Python de fractionner par espace tout en ignorant les espaces entre guillemets. Le résultat que je cherche est :

PS. je sais que vous allez demander « que se passe-t-il s’il y a des citations entre guillemets, Eh bien, dans mon application, ce qui n’arrivera jamais.

473voto

Jerub Points 17488

Vous voulez split, du module shlex.

Cela devrait faire exactement ce que vous voulez.

68voto

Allen Points 3497

Jetez un oeil sur le module, particulièrement .

``

``

``

32voto

Ryan Ginstrom Points 8354

Selon votre cas d’utilisation, vous pouvez également consulter le module csv :

Sortie :

8voto

gooli Points 2132

Étant donné que cette question est étiquetée avec regex, j’ai décidé de tenter une approche de regex. J’ai tout d’abord remplacer tous les espaces dans les parties de citations par \x00, séparés par des espaces, puis remplacer le \x00 vers des espaces de chaque partie.

Les deux versions font la même chose, mais splitter est un peu plus lisible, puis splitter2.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X