2017-10-06 2 views
-7

Comment puis-je compter combien de "a" s dans la première ligne d'un fichier txt. combien dans la seconde et ainsi de suite? et comment calculer le pourcentage d'une lettre dans le fichier entier? Je sais comment le faire dans une chaîne mais juste ne pas l'obtenir dans un fichier, ligne par ligne ... sry im nooob ,,,,Comptez le nombre de fois qu'une lettre apparaît dans une ligne d'un fichier txt. En python 2.3

+2

Python 2.3? Vraiment? Quoi qu'il en soit: qu'avez-vous essayé? – vaultah

+1

Python-2.3 en 2k17? – shash678

+0

Copie possible de [Compte l'occurrence d'un caractère dans une chaîne] (https://stackoverflow.com/questions/1155617/count-occurrence-of-a-character-in-a-string) – ptyyy

Répondre

0

Si je comprends bien votre question, quelque chose comme ça fonctionnerait:

read_lines = open("as.txt", "r") #this opens and reads the entire file 

line_number = 1 #setting a var to the line number we're at 

for word in read_lines: #starts looping for each word in the line 
    number_of_as = 0 #we are going to keep track of all the a's here for each line 
    for letter in word: #for each letter in each word in the line 
     if letter == "a" or letter == "A": #if the letter is a a or A 
      number_of_as += 1 #add 1 to how many a's are in this line 
    print("Line " + str(line_number) + " has " + str(number_of_as) + " a's") 
    line_number += 1 #now we move to the next line so we add 1 to our tracker 

Cela va lire le fichier entier, allez à chaque mot dans le fichier et vérifier chaque lettre. Si cette lettre est a, le compteur number_of_as est augmenté d'une unité. À la fin du programme, le nombre total de a sera affiché.

Ceci est écrit en python 3, cependant. Le code indique maintenant le nombre de a par ligne.

+0

je ne sais pas si ça va marcher en python 2 mais je vais essayer. Merci beaucoup ! –

+0

S'il vous plaît, laissez-moi savoir si cela a fonctionné. – GreenSaber

+0

mais comment le faire en ligne par ligne? je veux dire comment obtenir combien de "a" s dans la ligne un et combien dans la ligne 2? encore merci! j'apprécie. –

0

c.f. la regex docs

Pour une solution rapide et sale j'utiliserais re.subn() sur chaque chaîne - une copie de l'ensemble du fichier si nécessaire.
Divisez le nombre de résultats par taille de fichier pour le pourcentage. Regexes gérera également vos problèmes de cas.