Rechercher une chaîne dans des fichiers texte
Pour tenter de déterminer la présence d'une chaîne spécifique dans un fichier texte, un programme peut rencontrer un comportement inattendu. Pour résoudre ce problème, il est crucial de comprendre la raison sous-jacente des résultats incorrects.
Code original :
def check(): datafile = file('example.txt') found = False for line in datafile: if blabla in line: found = True break check() if True: print "true" else: print "false"
Raison des faux résultats :
Le code fourni renvoie systématiquement True quelle que soit la présence de la chaîne dans le fichier car l'évaluation de 'if True' dans le le bloc suivant n'est pas lié à la logique de la boucle précédente.
if True: print "true" else: print "false"
Python avec Open :
Une approche alternative pour lire un fichier texte consiste à utiliser le Instruction 'with' en conjonction avec la fonction 'open()'. Cette méthode crée un objet « de type fichier » qui gère automatiquement la fermeture du fichier.
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
Utilisation du mappage de mémoire :
Une autre technique pour travailler avec des fichiers texte est la mémoire cartographie. Cette approche lit l'intégralité du fichier en mémoire sous la forme d'un objet semblable à une chaîne, permettant un accès plus rapide et la possibilité d'utiliser des expressions régulières.
import mmap with open('example.txt', 'rb', 0) as file, \ mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s: if s.find(b'blabla') != -1: print('true')
En suivant ces suggestions, vous pouvez rechercher avec précision des chaînes dans les fichiers texte et obtenir les résultats attendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!