Supprimer les lignes qui contiennent certaines chaînes
Je suis en train de lire un texte à partir d'un fichier texte, de lire des lignes, supprimer les lignes qui contiennent la chaîne de caractères spécifique (dans ce cas, 'mauvais' et 'méchant').
Le code que j'ai écrit va comme ceci:
infile = file('./oldfile.txt')
newopen = open('./newfile.txt', 'w')
for line in infile :
if 'bad' in line:
line = line.replace('.' , '')
if 'naughty' in line:
line = line.replace('.', '')
else:
newopen.write(line)
newopen.close()
Je l'ai écrit comme ça, mais ça ne marche pas.
Une chose importante, c'est, si le contenu du texte comme ceci:
good baby
bad boy
good boy
normal boy
Je ne veux pas la sortie des lignes vides.
alors aime pas: les
good baby
good boy
normal boy
mais comme cela:
good baby
good boy
normal boy
Que dois-je modifier dans mon code ci-dessus?
source d'informationauteur H.Choi
Vous devez vous connecter pour publier un commentaire.
Vous pouvez rendre votre code plus simple et plus lisible comme ça
à l'aide d'un Gestionnaire De Contexte et tout.
Vous pourriez tout simplement pas inclure la ligne dans le nouveau fichier au lieu de le faire remplacer.
La
else
est connecté uniquement à la dernièreif
. Vous souhaitezelif
:Aussi noter que j'ai supprimé la ligne de substitution, tant que tu n'écris pas ces lignes, de toute façon.
J'ai utilisé ceci pour supprimer les mots à partir de fichiers texte:
Ou à faire de même pour tous les fichiers dans un répertoire:
Je suis sûr qu'il doit y avoir une façon plus élégante de le faire, mais ce n'est ce que je voulais.
Aujourd'hui, j'ai besoin pour accomplir une tâche similaire alors j'ai écrit un résumé pour accomplir la tâche basée sur quelques recherches que j'ai fait.
J'espère que quelqu'un va trouver cela utile!
Lien à l'Essentiel: emailStripper.py
Meilleur,
Az
Utiliser python-textops package :