0
votes

Pourquoi donne-t-il unicodedecodeError?

Je fais un cours de Python sur Py4e, presque terminé, mais le chapitre 11 semble impossible parce que cela me donne une erreur à chaque fois.

Erreur: strong> P>

import re

ffail = open('regex_sum_340933.txt')
lines = ffail.read()
count = 0

match = re.findall('[0-9]+', lines)

for II in match:
    number = int(II)
    count = count + number
print(count)


2 commentaires

Pouvez-vous publier les données dans le fichier txt


py4e-data.dr-chuck.net/regex_sum_340933.txt


3 Réponses :


0
votes

Vous ne le faites pas correctement. Tout d'abord, vous devez fermer le fichier que je suggérerais

pour simplement utiliser avec afin que vous n'ayez pas besoin de vous inquiéter de la fermeture du fichier.

Remplacez ce que vous lisez Le fichier avec ce xxx

Assurez-vous que regex_sum_340933.txt est dans le même répertoire que le fichier du code.

Si vous rencontrez toujours des difficultés, vous pouvez visiter cette Question


5 commentaires

Pourriez-vous accepter la question / expliquer pourquoi cela ne fonctionne pas et où est le problème?


Le code est-il censé ressembler à ceci? Importation refail = "" avec ouvert ("regex_sum_340933.txt", "r", "utf-8") comme quelque_fail: ffail = one_file.read () compte = 0 match = re.findall ('[0-9] + ', FFAIL) pour II en match: Numéro = int (ii) Compte = comptage + numéro d'impression (compte) donne cette erreur: ligne 4, dans avec ouvert ("REGEX_SUM_340933.TXT", "R" "," UTF-8 ") Comme quelque_file: TypeError: Un entier est requis (type STR). Je ne comprends pas ce que je dois faire.


@Romeesna Essayez de mettre à jour votre code avec le problème que je ne comprends pas


avec ouvert ("regex_sum_340933.txt", "r", "utf-8") comme quelque_file: TypeError: un entier est requis (type STR) Cela me donne cette erreur, toutes les suggestions?


@Romeesna Voir la réponse mise à jour Essayez avec et sans la mise en mémoire tampon et montrez-moi l'erreur s'il y en a un



0
votes

Essayez ceci:

import re

lines = open('regex_sum_340933.txt', encoding='utf-8', errors='ignore').read()
count = sum(map(int, re.findall('[0-9]+', lines)))


0 commentaires

0
votes

Merci d'avoir aidé, le code n'était pas faux, juste mon Mac ne voulait pas le faire fonctionner. Essayé avec Windows et la réponse est venue immédiatement.


0 commentaires