7 hacks intelligents de fichiers texte Python révélés
Travaillez-vous quotidiennement avec de nombreux fichiers ? Grand et petit ? Désordonné et propre ? Quels que soient les besoins de votre tâche, Python facilite grandement le travail avec les fichiers. Avec un peu de codage, vous pourriez économiser des heures de travail et de bon sens. Explorons la magie de la manipulation de fichiers de Python.
Sommaire
Lire un fichier texte
Lorsque vous travaillez avec des journaux, des fichiers de configuration, des ensembles de données ou tout autre format texte, la toute première compétence dont vous avez besoin est la capacité de lire un fichier efficacement. Python rend cela très simple avec le module intégré open() fonction et quelques méthodes de lecture pratiques. Alors que la fonction open() est la passerelle standard, la manière « Pythonic » de gérer les fichiers consiste à utiliser un gestionnaire de contexte (le with déclaration).
with open("server.log", "r") as f:
content = f.read()
print(content)
C’est l’approche « donne-moi tout ». Si le fichier est petit ou modéré, c'est parfait. Python charge le tout en mémoire sous la forme d'une seule chaîne. En utilisant with garantit que Python ferme le fichier pour vous. Il gère la configuration et le démontage de la ressource fichier.
Si vous souhaitez lire ligne par ligne, utilisez cette approche :
with open("users.txt", "r") as f:
for line in f:
print(line.strip())
Vous pouvez également utiliser Python readline() et readlines() fonctions.
# Read the first line
with open("data.txt", "r") as f:
first_line = f.readline()
# Read all lines into a list
with open("data.txt", "r") as f:
lines = f.readlines()
Le readline() la fonction est idéale lorsque vous n’avez besoin que d’un nombre spécifique de lignes. Ceci est utile si vous devez accéder à des lignes spécifiques par index, par exemple : lines(5). readlines() vous remet chaque ligne sous forme de liste, ce qui est pratique pour l'indexation, le découpage ou les transformations rapides.
Écrire dans des fichiers texte
Finalement, chaque développeur Python doit remettre quelque chose dans un fichier. Peut-être que vous générez des rapports, enregistrez des données nettoyées ou écrivez des journaux à partir de votre propre script. La bonne nouvelle est qu’écrire dans des fichiers en Python est aussi simple que de les lire. Pour écrire du nouveau contenu dans un fichier :
report = "Daily summary: All systems operational.n"
with open("summary.txt", "w") as f:
f.write(report)
Ouvrir un fichier avec "w" crée le fichier s'il n'existe pas et l'écrase complètement s'il existe. C'est parfait lorsque vous générez de nouveaux résultats, comme exporter un ensemble de données traitées ou régénérer un rapport chaque jour. Si, à la place, vous souhaitez ajouter à un fichier, utilisez le "a" option.
log_entry = "User logged in at 14:32n"
with open("activity.log", "a") as f:
f.write(log_entry)
Utilisez-le lorsque vous souhaitez conserver ce qui est déjà dans un fichier et simplement ajouter de nouvelles lignes à la fin. Lorsque vous souhaitez écrire plusieurs lignes, writelines() est utile.
lines = (
"applen",
"bananan",
"cherryn"
)
with open("fruits.txt", "w") as f:
f.writelines(lines)
Ceci est utile lorsque vous disposez déjà d’une liste Python de contenu de type chaîne. N'oubliez pas qu'il n'ajoute pas de caractères de nouvelle ligne pour vous, vous devez donc les inclure dans les chaînes.
Comment explorer et visualiser les données avec Python et Seaborn
Vous avez peut-être entendu dire que Python est idéal pour l'analyse de données. Cherchez-vous un moyen de visualiser des données qui soit facile à utiliser et qui produise de jolis graphiques ? Seaborn est peut-être exactement ce que vous recherchez.
Pourquoi j'ai choisi Seaborn
Lire l'article >
Recherche dans des fichiers texte
Une fois que vous savez comment lire et écrire des fichiers, l'étape suivante consiste à trouver ce que vous cherchez à l'intérieur. Peut-être que vous analysez les journaux à la recherche de messages d'erreur ou que vous extrayez des lignes qui correspondent à un certain modèle. Python vous offre plusieurs façons de rechercher dans des fichiers texte. Regardons un exemple simple utilisant des boucles.
target = "ERROR"
with open("server.log", "r") as f:
for line in f:
if target in line:
print("Found error:", line.strip())
Cette approche fonctionne à merveille si vous recherchez simplement une sous-chaîne de base. Pour un filtrage un peu plus avancé, vous pouvez utiliser des modèles d'expression régulière pour l'automatiser. Vous pouvez utiliser Python re module.
import re
pattern = re.compile(r"Users+d+s+loggeds+in")
with open("activity.log", "r") as f:
for line in f:
if pattern.search(line):
print("Match:", line.strip())
Pensez à des scénarios dans lesquels vous devez détecter des identifiants, des horodatages, des formats ou tout ce qui a une structure. Dans cet exemple, nous trouvons des lignes sur lesquelles un utilisateur doté d'un identifiant numérique s'est connecté.
Remplacer du texte dans des fichiers
La recherche est géniale. Mais tôt ou tard, vous devrez modifier le contenu d’un fichier. Python rend le remplacement de texte étonnamment simple une fois que vous connaissez les modèles de base. Pour les tâches de recherche et de remplacement de base, vous pouvez utiliser les opérations sur les chaînes de Python.
old = "ERROR"
new = "INFO"
with open("server.log", "r") as f:
content = f.read()
updated = content.replace(old, new)
with open("server.log", "w") as f:
f.write(updated)
Ce modèle est idéal lorsque vous souhaitez remplacer toutes les occurrences d'un certain mot ou d'une certaine expression. Si cela ne suffit pas à votre cas d'utilisation, encore une fois, vous disposez d'une regex pour les tâches de remplacement avancées. Voici un exemple simple :
import re
pattern = r"bUsers+(d+)b"
replacement = r"Account 1"
with open("activity.log", "r") as f:
content = f.read()
updated = re.sub(pattern, replacement, content)
with open("activity.log", "w") as f:
f.write(updated)
Ici, regex vous donne le pouvoir de remplacer du texte structuré, pas seulement une chaîne littérale.
7 utilisations du module aléatoire en Python
Vous souhaitez ajouter un peu d'imprévisibilité à votre code Python ? Le module aléatoire est le moyen le plus rapide de le faire. De la génération de nombres et du mélange de listes à la simulation du caractère aléatoire du monde réel, c'est l'un de ces modules petits mais utiles que tout programmeur Python devrait connaître. Allons-y !
Importer le module aléatoire
Lire l'article >
Compter les mots, les lignes et les caractères
Supposons que vous ayez un fichier texte et que vous ayez besoin de mesures de base telles que le nombre de lignes, de mots et le nombre de fois qu'un mot apparaît. Ces informations peuvent être utiles pour l'analyse de texte, les rapports et le traitement des données. Python rend cela facile. Vous pouvez utiliser des boucles pour compter.
line_count = 0
char_count = 0
with open("notes.txt", "r") as f:
for line in f:
line_count += 1
char_count += len(line)
print("Lines:", line_count)
print("Characters:", char_count)
Cette boucle simple fonctionne bien même pour les fichiers volumineux. Vous lisez une ligne à la fois, la comptez et suivez le nombre total de caractères en cours de route. Pour compter les mots :
word_count = 0
with open("notes.txt", "r") as f:
for line in f:
words = line.split()
word_count += len(words)
print("Words:", word_count)
Diviser chaque ligne avec .split() vous donne une liste de mots, parfaite lorsque vous effectuez des mesures simples basées sur des mots.
Pour une analyse de mots plus avancée, vous pouvez profiter de collections module, comme ceci :
from collections import Counter
counter = Counter()
with open("notes.txt", "r") as f:
for line in f:
counter.update(line.split())
print(counter.most_common(5))
Si vous avez besoin de savoir quels mots apparaissent le plus souvent, Counter est incroyablement pratique. Il compte les éléments pour vous et peut même vous indiquer les N mots les plus fréquents avec .most_common().
Fractionner et fusionner des fichiers
Les fichiers texte peuvent devenir volumineux. Pensez à travailler avec des ensembles de données comportant des millions de lignes ou à des exportations trop volumineuses pour être traitées en une seule fois. Parfois, vous devez diviser un fichier en morceaux plus petits, et d'autres fois, vous devez combiner plusieurs fichiers en une seule sortie propre et unifiée. Python gère facilement les deux tâches.
Une façon de diviser un fichier consiste à prendre un nombre fixe de lignes et à les écrire dans de nouveaux fichiers. Voici comment procéder :
chunk_size = 10
file_number = 1
current_lines = ()
with open("bigdata.txt", "r") as f:
for i, line in enumerate(f, start=1):
current_lines.append(line)
if i % chunk_size == 0:
output_name = f"chunk_{file_number}.txt"
with open(output_name, "w") as out:
out.writelines(current_lines)
current_lines = ()
file_number += 1
# write any remaining lines
if current_lines:
output_name = f"chunk_{file_number}.txt"
with open(output_name, "w") as out:
out.writelines(current_lines)
Pour fusionner plusieurs fichiers en une seule unité, Python glob le module est pratique.
import glob
with open("merged_output.txt", "w") as outfile:
for filename in glob.glob("logs/log*"):
with open(filename, "r") as infile:
outfile.write(infile.read())
Ici, glob récupère chaque fichier commençant par log dans le logs/ dossier, et vous ajoutez simplement leur contenu dans un seul fichier. C'est parfait lorsque vous traitez des fichiers journaux quotidiens, des exportations de données partielles ou tout répertoire rempli de fichiers qui vont ensemble.
Une fois que vous avez divisé et fusionné dans votre boîte à outils, vous pouvez automatiser toutes sortes de tâches de routine. Par exemple, combinez des journaux hebdomadaires en un journal mensuel, divisez des fichiers d'entrée volumineux avant de les insérer dans un script, entre autres.
Le module mathématique en Python : 6 calculs courants que vous pouvez effectuer
C'est une plaisanterie courante que Python soit une excellente calculatrice dans son mode interactif. Vous pouvez le rendre encore meilleur grâce au module mathématique intégré, qui contient un grand nombre des mêmes fonctions mathématiques que celles que vous trouveriez sur une calculatrice scientifique ou graphique portable.
Constantes
Lire l'article >
Gestion des erreurs et opérations de fichiers sécurisées
Lorsque vous travaillez avec des fichiers dans le monde réel, les choses ne se passent pas toujours comme prévu. Les opérations sur les fichiers peuvent échouer pour une douzaine de raisons. Le fichier n'existe peut-être pas. Votre programme n'est peut-être pas autorisé à le lire ou à y écrire. Si votre script plante à mi-parcours, vous risquez de corrompre les données ou de laisser derrière vous des fichiers à moitié écrits.
Pour des E/S de fichiers plus sûres, vous devez utiliser Python try/except bloc pour gérer les erreurs Python.
filename = "config.txt"
try:
with open(filename, "r") as f:
data = f.read()
print("File loaded successfully.")
except FileNotFoundError:
print("File not found:", filename)
except PermissionError:
print("You don’t have permission to read this file.")
except Exception as e:
print("Unexpected error:", e)
Cela vous permet de détecter des problèmes prévisibles tels que des fichiers manquants ou des problèmes d'autorisation. Un autre problème courant auquel vous pouvez être confronté est l’encodage. Assurez-vous donc de les gérer lorsque vous n'êtes pas sûr du codage qu'un fichier peut utiliser.
try:
with open("encoding.txt", "r", encoding="utf-8") as f:
content = f.read()
print("File loaded successfully.")
except UnicodeDecodeError:
print("File encoding is not UTF-8. Trying fallback…")
with open("encoding.txt", "r", encoding="latin-1") as f:
content = f.read()
print("Fallback load succeeded:")
print(content)
La gestion de l'encodage évite les plantages lors de la lecture de fichiers provenant d'environnements mixtes.
Comment utiliser le module de statistiques Python
Python possède de merveilleuses bibliothèques pour l'analyse statistique, mais elles peuvent être excessives pour des tâches simples. La bibliothèque de statistiques intégrée pourrait être ce que vous souhaitez à la place. Voici quelques choses que vous pouvez faire avec. Vous n'avez plus besoin de mémoriser des formules compliquées ni de parcourir des tableaux.
Qu'est-ce que le module de statistiques Python ?
Lire l'article >
Cela couvre certaines des tâches liées aux fichiers les plus courantes que vous pouvez accomplir et même automatiser à l'aide de Python. Si vous souhaitez en savoir plus sur Python et ses différentes fonctionnalités, essayez de consulter le module os ou d'explorer la fonction open().
