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()
3 Réponses :
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
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))
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)
Changer
readline () code> pour
Readlines () code>.
readline () code> renvoie un STR,
Readlines () code> 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 code>?
F2_L CODE> est la première ligne du fichier, pas un numéro, vous ne pouvez pas l'ajouter 1.