Je veux rechercher essentiellement des mots-clés dans une liste, mais je ne sais pas comment corriger mon code, donc je ne reçois pas cette erreur.
5 Réponses :
La fonction de lecture sur un zipfile retourne des octets.
Donc, donc décoder les octets au format UTF-8, qui est le codeur le plus sûr que vous pouvez utiliser pour un fichier texte si vous ne connaissez pas le codage exact p> < Pré> xxx pré> p>
Cela corrige un problème, mais crée une nouvelle.
Merci, j'ai essayé ça et puis j'ai eu une erreur me disant que cela voulait une chaîne pas d'octets lol, mais j'ai fixé le problème. Merci
Si vous changez comme ça, cela fonctionnera:
suspicious = [] zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip") file = zip.read("domain-names.txt") for x in file.split(b'\r\n'): strX = str(x) if "apple" in strX and "support" in strX: print("suspicious address found"+ strX) suspicious.append(strX.replace('\n', ''))
zip.read code> retourne un objet
octets code> objet. Si vous savez que c'est un texte, vous devez le décoder d'abord à un objet
STR code> avant de le travailler plus loin.
import io
import zipfile
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = io.StringIO(zip.read("domain-names.txt").decode(), newline=None)
for x in file:
if "apple" in x and "support" in x:
print("suspicious address found"+ x)
suspicious.append(x.rstrip('\n'))
C'est parce que vous mélangez STR avec des octets. La valeur du fichier est d'octets afin que vous ne puissiez pas le diviser par une chaîne ('\ r \ n'). Vous avez 2 choix ici:
donc le changement simple serait cette (deuxième approche) p> approche de base octet (première approche) p>
Vous devez faire un objet de fichier .Decode () avant "pour" boucle. CODE CORODE ci-dessous.
suspicious = [] zip = zipfile.ZipFile("C:/Users/Kamil/urls.zip") file = zip.read("domain-names.txt") file = file.decode() for x in file.split('\r\n'): if "apple" in x and "support" in x: print("suspicious address found"+ x) suspicious.append(x.replace('\n', ''))