Compter facilement les caractères et les mots dans des fichiers texte en utilisant Python
Travaillez-vous sur un projet d'écriture et avez-vous besoin de suivre le nombre de caractères et de mots ? Ou peut-être êtes-vous un développeur qui souhaite ajouter des capacités d'analyse de fichiers à vos scripts Python ? Dans les deux cas, vous pouvez utiliser un simple script Python pour obtenir rapidement le nombre de caractères et de mots de n'importe quel fichier texte.
L'idée de base est simple. Vous ouvrez le fichier, lisez son contenu, puis utilisez les fonctions intégrées de Python pour compter les caractères et les mots.
Dans cet article, nous expliquerons comment créer un simple script Python pour compter à la fois les mots et les caractères dans un fichier texte. Nous montrerons également comment gérer les caractères de nouvelle ligne, afin que vous puissiez choisir de les inclure ou non dans votre compte de caractères.
Commençons.
Compter les caractères
Le comptage de caractères en Python consiste à compter chaque caractère du texte, y compris les espaces, la ponctuation et (optionnellement) les caractères de nouvelle ligne. La fonction len() facilite le comptage des caractères.
Exemple 1 : Inclure des sauts de ligne
Pour obtenir le nombre total de caractères, y compris les caractères de nouvelle ligne, vous pouvez utiliser la fonction len() sur le contenu du fichier :
with open('file.txt', 'r') as file:
contents = file.read()
char_count = len(contents)Cela vous donnera le nombre total de caractères, en comptant chaque caractère de saut de ligne comme un caractère unique.
Exemple 2 : Exclure les sauts de ligne
Si vous voulez exclure les caractères de nouvelle ligne du décompte, vous pouvez utiliser la méthode replace() pour les supprimer avant d'obtenir la longueur :
with open('file.txt', 'r') as file:
contents = file.read()
char_count = len(contents.replace('\n', ''))Maintenant, le décompte des caractères inclura uniquement le contenu réel du texte, sans les caractères de saut de ligne.
Compter les mots
Compter le nombre de mots dans un fichier texte est simple. La méthode split() de Python divise une chaîne en une liste de mots en fonction des espaces. En comptant la longueur de cette liste, vous pouvez facilement trouver le nombre de mots dans le texte.
Voici un exemple de base :
Pour obtenir le nombre de mots, vous pouvez diviser le contenu du fichier sur les espaces blancs (espaces, tabulations, nouvelles lignes) et compter la liste de mots résultante :
with open('file.txt', 'r') as file:
contents = file.read()
word_count = len(contents.split())Cela vous donnera le nombre total de mots dans le fichier.
Combinons ces fonctions en un seul script Python qui affiche le nombre total de mots et de caractères pour un fichier donné.
Script Python complet pour compter les caractères et les mots dans un fichier texte
Le script Python complet pour afficher à la fois le nombre de caractères et de mots d'un fichier texte donné est disponible sur notre page gist de GitHub :
#!/usr/bin/env python
# ------------------------------------------------------------------
# Script Name: txtcwcount.py
# Description: A Python Script to Count Characters and Words
# in a Plain Text File.
# Website: https://gist.github.com/ostechnix
# Version: 1.0
# Usage: python txtcwcount.py filename
# ------------------------------------------------------------------
import sys
def count_words_chars(file_path):
with open(file_path, 'r') as file:
contents = file.read()
word_count = len(contents.split())
char_count = len(contents)
return word_count, char_count
def main():
if len(sys.argv) < 2:
print("Usage: python file_counter.py <file_path>")
return
file_path = sys.argv[1]
word_count, char_count = count_words_chars(file_path)
print("="*50)
print(f"File: {file_path}")
print(f"Character Count: {char_count}")
print(f"Word Count: {word_count}")
print("="*50)
if __name__ == "__main__":
main()Pour utiliser ce script, téléchargez soit le fichier cwcount.py depuis notre page Github Gist, soit copiez le code ci-dessus, enregistrez-le dans un fichier (par exemple, cwcount.py) et exécutez-le depuis la ligne de commande en passant le chemin du fichier en argument :
python txtcwcount.py file.txtLe script affichera ensuite le nombre de caractères (y compris les sauts de ligne) et le nombre de mots pour le fichier spécifié.
Exemple de sortie :
Comme vous pouvez le voir, il y a 23 caractères et 6 mots dans le fichier file.txt.
Vérifions le contenu du file.txt :
Comptez les caractères (y compris les sauts de ligne et les espaces) et les mots pour vérifier si le décompte correspond à votre résultat.
Comme déjà indiqué, pour exclure les caractères de nouvelle ligne du compte de caractères, nous pouvons utiliser l'approche len(contents.replace('\n', '')) au lieu de simplement len(contents).
Le changement clé se trouve dans la fonction count_words_chars() du script :
char_count = len(contents.replace('\n', ''))Cela remplace tous les caractères de nouvelle ligne (\n) par une chaîne vide, les supprimant effectivement du calcul du nombre de caractères.
La sortie ressemblera maintenant à ceci :
==================================================
File: file.txt
Character Count: 21
Word Count: 6
==================================================L'approche par défaut : compter les caractères, y compris les sauts de ligne
En général, le comportement par défaut pour le comptage des caractères en programmation est d'inclure les caractères de saut de ligne.
La raison en est que les caractères de nouvelle ligne font partie du contenu du fichier et doivent être pris en compte lors de la détermination du nombre total de caractères. Ils représentent des informations importantes sur la structure et le formatage du texte, et les exclure du décompte des caractères ne donnerait pas une image complète.
Cependant, il existe des cas d'utilisation valides où vous pourriez vouloir exclure les caractères de saut de ligne du décompte des caractères, surtout lorsque les caractères de saut de ligne ne sont pas le principal objet de l'analyse. Par exemple, si vous vous intéressez à la longueur visuelle du contenu textuel, exclure les caractères de saut de ligne pourrait être plus approprié.
Dans ce tutoriel, j'ai montré des exemples d'inclusion et d'exclusion des caractères de saut de ligne dans le compte des caractères. Cela vous donne la flexibilité de choisir l'approche qui convient le mieux à vos besoins. Si vous n'avez pas d'exigence spécifique pour exclure les caractères de saut de ligne, l'approche par défaut et la plus courante serait de les inclure dans le compte des caractères.
Conclusion
Ce script Python facilite le comptage du nombre de mots et de caractères dans un fichier texte, avec la possibilité d'inclure ou d'exclure les caractères de nouvelle ligne en fonction de vos besoins.
Que vous soyez écrivain, développeur ou quelqu'un qui a besoin d'analyser des fichiers texte, ce script peut être un outil précieux dans votre boîte à outils. Essayez-le et faites-moi savoir si vous avez des questions !
Lecture liée :
- Compter les caractères et les mots dans les fichiers PDF en utilisant Python sous Linux

