Fichier De Recherche Et De Trouver La Correspondance Exacte Et La Ligne D'Impression?
J'ai cherché partout mais je ne pouvais pas trouver un post pour m'aider à résoudre ce problème, j'ai trouvé de similaire, mais je ne pouvais pas trouver quelque chose à régler ce seul de toute façon.
Voici le problème que j'ai, je vais essayer d'avoir un script python à la recherche d'un fichier texte, le fichier texte a les numéros dans une liste et chaque numéro correspond à une ligne de texte et si le raw_input match est le nombre exact dans le fichier texte de l'impression que toute la ligne de texte. jusqu'à présent, Il imprime une ligne contenant le nombre.
Exemple du problème, les types d'Utilisateurs 20
alors la sortie est chaque chose contenant un 2
et un 0
, alors je me 220 foo
200 bar
etc. Comment puis-je résoudre ce problème de manière juste trouver "20"
voici le code que j'ai
num = raw_input ("Type Number : ")
search = open("file.txt")
for line in search:
if num in line:
print line
Grâce.
Désolé, Le Fichier Texte ressembler à Ceci 1 bla 2 bla 3 bla 4 bla 5 bla va vers le bas dans une liste il y a donc un numéro devant chaque ligne de texte.
OriginalL'auteur Robots | 2013-03-30
Vous devez vous connecter pour publier un commentaire.
À vérifier pour une exacte match vous utilisez
num == line
. Maisline
a une fin-de-ligne de caractères\n
ou\r\n
qui ne sera pas dansnum
depuisraw_input
bandes de fuite de saut de ligne. Donc il peut être utile de supprimer tous les espaces à la fin deline
avecraw_input()
automatiquement les bandes des espacesMerci pour la correction.
Attention: raw_input() n'a pas de bande de fuite d'espaces, il supprime le point final de saut de ligne.
Merci pour la correction... de ma correction. 🙂
OriginalL'auteur unutbu
Générer des listes de correspondance des lignes de plusieurs saveurs:
Construire générateur de correspondance des lignes (de mémoire efficace):
Imprimer toutes les lignes correspondants (trouver tous les matchs en premier, puis les imprimer):
Imprimer toutes les lignes correspondants (les imprimer paresseusement, comme nous les trouvons)
Générateurs (produite par le rendement) sont vos amis, surtout avec de gros fichiers qui ne rentrent pas dans la mémoire.
OriginalL'auteur The Aelfinn
vous devez utiliser des expressions régulières pour trouver tout dont vous avez besoin:
expression régulière, vous retournez tous les nombres dans une ligne d'une liste, par exemple:
de sorte que vous ne correspondent pas '200' ou '220' pour '20'.
OriginalL'auteur lenik
C'est très simple:
OriginalL'auteur Oni1
Le chèque doit être comme ceci:
Si file.txt a une mise en page comme ceci:
De nous séparer
"1 foo"
en['1', 'foo']
et de n'utiliser que le premier élément, qui est le nombre.OriginalL'auteur naeg
OriginalL'auteur Jetlef