Supprimer divers caractères vides [Python]

Aperçu

Voici un résumé de la façon de supprimer différents types d'espaces, y compris les espaces demi-largeur et les espaces pleine largeur.

environnement

macOS Catalina version 10.15.4 python 3.8.0

code

Supprimer le code de saut de ligne, les tabulations, les espaces, etc. en même temps

Utilisez str.split ()

#\u3000 est un espace pleine largeur
text = "a\u3000 b\t\nc\r\n"
text = ''.join(text.split())

Supprimer uniquement le code de saut de ligne (\ r \ n et \ n) à la fois

Utilisez str.splitlines ()

text = "a\u3000 b\t\nc\r\n"
text = ''.join(text.splitlines())

Supprimez certains espaces (par exemple, espace pleine largeur, espace demi-largeur, tabulation) sauf le code de saut de ligne à la fois

Utilisez str.translate ()

text = "a\u3000 b\t\nc\r\n"
table = str.maketrans({
  '\u3000': '',
  ' ': '',
  '\t': ''
})
text = text.translate(table)

S'il y a beaucoup d'autres caractères à supprimer, il est plus facile d'écrire l'argument de str.maketrans () dans la notation de type d'inclusion.

text = "a\u3000 b\t\nc\r\nd\x0ce\x0bf"
table = str.maketrans({
    v: '' for v in '\u3000 \x0c\x0b\t' #Ou['\u3000',' ','\x0c','\x0b','\t']
})
text = text.translate(table)

Supplément: utilisation d'expressions régulières

Je vous ai donné quelques conseils sur la façon d'utiliser les expressions régulières dans les commentaires, je vais donc les résumer ci-dessous. Merci pour votre commentaire.

import re

#Supprimez d'un seul coup les sauts de ligne, les tabulations, les espaces, etc.
text = "a\u3000\n\n b\t\nc\r\nd\x0ce\x0b\rf\r\n"
text = re.sub(r"\s", "", text)

#Code de saut de ligne (\r\n ou\n) Supprimer uniquement à la fois
text = "a\u3000\n\n b\t\nc\r\nd\x0ce\x0b\rf\r\n"
text = re.sub(r"[\r\n]", "", text)

#Supprimez certains espaces (par exemple, espace pleine largeur, espace demi-largeur, tabulation) sauf le code de saut de ligne à la fois
text = "a\u3000\n\n b\t\nc\r\nd\x0ce\x0b\rf\r\n"
text = re.sub(r"[\u3000 \t]", "", text)

référence

  1. L'espace n'est pas seulement ""
  2. Journal de yohhoy --Supprimez tous les caractères vides
  3. Sortie, concaténation, fractionnement, suppression, remplacement de chaînes, y compris les sauts de ligne en Python

Recommended Posts

Supprimer divers caractères vides [Python]
# 3 [python3] Divers opérateurs
Divers outils de visualisation Python
Segfo Python avec 33 caractères
Divers traitements de Python
Diverses opérations de chaîne avec Python intégré
À propos de divers encodages de Python 3
Manipulez diverses bases de données avec Python
Afficher des caractères comme AA en python
[Python] Tri Starlin à une ligne avec 50 caractères
Supprimer plusieurs éléments dans la liste python