Maison > développement back-end > Tutoriel Python > Pourquoi ma recherche de chaîne dans les fichiers texte Python renvoie-t-elle toujours True ?

Pourquoi ma recherche de chaîne dans les fichiers texte Python renvoie-t-elle toujours True ?

Linda Hamilton
Libérer: 2024-12-04 07:03:09
original
246 Les gens l'ont consulté

Why Does My String Search in Python Text Files Always Return True?

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"
Copier après la connexion

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"
Copier après la connexion

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")
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal