J'essaie de supprimer tous les espaces / onglets / nouvelles lignes en python 2.7 sous Linux.
J'ai écrit ceci, cela devrait faire le travail:
myString="I want to Remove all white \t spaces, new lines \n and tabs \t"
myString = myString.strip(' \n\t')
print myString
production:
I want to Remove all white spaces, new lines
and tabs
Cela semble être une chose simple à faire, mais il me manque quelque chose ici. Dois-je importer quelque chose?
python
string
python-2.7
strip
bachurim09
la source
la source
Réponses:
Utiliser
str.split([sep[, maxsplit]])
sanssep
ousep=None
:À partir de la documentation :
Démo:
Utilisez
str.join
sur la liste renvoyée pour obtenir cette sortie:la source
Si vous souhaitez supprimer plusieurs éléments d'espaces et les remplacer par des espaces simples, le moyen le plus simple est d'utiliser une expression rationnelle comme celle-ci:
Vous pouvez ensuite supprimer l'espace de fin avec
.strip()
si vous le souhaitez.la source
Utilisez la bibliothèque re
Production:
la source
la source
PRODUCTION:
Bonne journée!
la source
Les solutions ci-dessus suggérant l'utilisation de regex ne sont pas idéales car c'est une tâche si petite et regex nécessite plus de ressources supplémentaires que la simplicité de la tâche ne le justifie.
Voici ce que je fais:
myString = myString.replace(' ', '').replace('\t', '').replace('\n', '')
ou si vous aviez un tas de choses à supprimer de telle sorte qu'une solution sur une seule ligne serait gratuitement longue:
la source
Puisqu'il n'y a rien d'autre qui soit plus complexe, je voulais partager ceci car cela m'a aidé.
C'est ce que j'ai utilisé à l'origine:
Résultat indésirable:
Voici ce que j'ai changé en:
Résultat désiré:
Le regex précis que @MattH avait mentionné, était ce qui a fonctionné pour moi en l'ajustant à mon code. Merci!
Remarque: c'est
python3
la source