J'essaie de créer un mot nuage d'un fichier TXT avec ce code: comme dans le titre, il me donne une erreur: les indices de chaîne doivent être entiers sur Raw_File. Ajouter (ligne ['Texte']).
J'ai essayé quelques méthodes différentes pour le faire fonctionner mais ce n'est pas le cas, alors je demande ici de l'aide. P> Merci d'avance. P> P>
3 Réponses :
Remplacez avec p> lorsque vous faites en fait ce que vous voulez serait normalement p> car il fait ce que vous semblez essayer de faire puis ferme le gestionnaire de fichiers à la fin plutôt que de le laisser Ouvert (comme vous le faites actuellement). P> Vous allez alors avoir des problèmes car vous essayez de traiter une liste de lignes comme une chaîne, ce qu'elle n'est pas. Je vous suggère d'essayer d'écrire cette ligne par ligne et de travailler ce que vous voulez réellement faire. Stackoverflow finira par écrire tout ce code pour vous, mais cela ne vous aide pas vraiment à apprendre quoi que ce soit. P> p> ligne ["texte '] code> tu es Essayer de prendre l'élément "Texte" à partir de l'objet
Ligne Code>, mais la ligne est une chaîne, et
"Texte" code> n'est pas un index valide pour un type de chaîne. P >
ligne code> à partir de
fichier.read () code> lit un seul caractère. Vous souhaitez utiliser
fichier.readlines () code> et itérer sur cela.
Je ne sais pas pourquoi vous essayez d'utiliser la ligne comme dictionnaire
ligne ["texte"] code>.
C'est à quoi ressemble l'erreur, car vous ne pouvez pas accéder à la touche code> texte code>. P>
Vous faites quelques choses inutiles, sans lesquelles vous pouvez rendre votre code un peu plus simple. Le problème réel est de savoir comment vous indexation Vous n'avez pas vraiment besoin Ajout des lignes alors à Vous n'avez pas non plus besoin de changer ligne ["texte '] code>, mais il y a aussi un problème avec la manière dont vous tournez ensuite
brut_file code> dans
mots code> .
fr = fichier.read () code> (de
fichier.readlines () code>).
pour la ligne dans le fichier: code> fait la même chose pour vous. p>
RAW_FILE CODE>, puis à l'aide de
.Split ("") code> à ce sujet, tentera de scinder sur une liste des lignes, de donner vous votre prochaine erreur. Vous pouvez simplement diviser directement la ligne et ajouter cela à votre liste de mots
code>. P>
mots code> dans
word_list code> ou
populaire_words code> dans
toppl code> . IMHO Cela ne fait que crée simplement plus de variables et rend le code moins lisible. p>