0
votes

Fichier de lecture puis compter les lignes dans ledit fichier

J'essaie de créer un programme dans lequel le programme demande à l'utilisateur un fichier. Le programme devrait ensuite imprimer le contenu du fichier, puis compter les lignes. Le problème lorsque je gère le programme est que je reçois cette erreur: pour compter dans la plage [1, F2_L + 1]: TypeError: ne peut concaténer que STR (pas "INT") à STR code>. Le compte n'est-il pas censé être un entier et non une chaîne? J'aimerais utiliser continuer à utiliser pendant que f2_l! = '': Code>.

f1 = input('Please enter filename you wish to open.: ')   
f2 = open(f1, 'r') 
f2_l = f2.readline()
for count in range[1, f2_l + 1]:
    print(count,':')
while f2_l != '':
    print(f2_l)
    f2_l = f2.readline()
f2.close()


4 commentaires

Changer readline () pour Readlines () . readline () renvoie un STR, Readlines () une liste


J'ai fait le changement suggéré et cela m'a donné la même erreur.


Les arguments de fonction vont entre parenthèses, pas des crochets.


Qu'essayez-vous de faire avec f2_l + 1 ? F2_L est la première ligne du fichier, pas un numéro, vous ne pouvez pas l'ajouter 1.


3 Réponses :


1
votes
f1 = input('Please enter filename you wish to open.: ')   
f2 = open(f1, 'r') 
f2_l = f2.readlines()
for i in range(1, len(f2_l)):
    print(i, ':', f2_l[i - 1])
f2.close()
Read the docs for file manipulation and loops. i is the index in the line list. readlines() return the list of lines, each one is an str

0 commentaires

1
votes

Je suggère ceci:

filename = input('Please enter filename you wish to open.: ')

with open(filename) as f:
    data = f.readlines()

for index, line in enumerate(data, 1):
    print('{index}: {line}'.format(index=index, line=line))


0 commentaires

0
votes

Vous pouvez utiliser Python's intégré Enunération () Code> fonction comme indiqué ci-dessous pour compter les lignes semi-automatiquement telles qu'elles sont imprimées:

filename = input('Please enter filename you wish to open: ')
with open(filename, 'r') as file:
    count = 0  # In case file is empty.
    for count, line in enumerate(file, 1):
        print(line, end='')

print('line count:', count)


0 commentaires