salut,
je m'amuse à bricoler un générateur de texte en python (mon premier .py). En lisant un article, je me suis dit que ce serait ben de jouer avec le dico de synonyme également.
Malheureusement je n'arrive pas à lancer le script (code ci-dessous).
j ai :
Traceback (most recent call last): File "C:\Users\new\Desktop\thesaurus-v2.3\script.py", line 14, in <module> nb_passe = int(argv[1]) IndexError: list index out of range
bon je me dit je vais un peu modifier le code pour voir :
...
BDD = [] liste_def = [] count = 0 #nb_passe = int(argv[1]) nb_passe = 10
...
et là : Traceback (most recent call last): File "C:\Users\new\Desktop\thesaurus-v2.3\script.py", line 29, in <module> if ligne[1].decode('utf-8').isdigit(): AttributeError: 'str' object has no attribute 'decode'
...
Pourquoi?
merci de l'aide.

---
import re

from sys import argv
from random import randrange

BDD = []
liste_def = []
count = 0
nb_passe = int(argv[1])

fin = [",", ")", ".", "!", "»", "]"]

source = '''La poésie est un genre littéraire très ancien aux formes variées, écrites généralement en vers, mais qui admet aussi la prose, et qui privilégie
l'expressivité de la forme. Sa définition se révèle difficile, et varie selon les époques, au point que chaque siècle peut lui trouver une fonction et une
expression différente aussi d'un poète à l'autre. Le terme « poésie » et ses dérivés viennent du grec ancien ποίησις, et s'écrivait, jusqu'en 1878 poësie (le
tréma marquait une disjonction entre les voyelles o et e). ποιεῖν (poiein) signifie « faire, créer » : le poète est donc un créateur, un inventeur de formes
expressives, ce que révèlent aussi les termes du Moyen Âge, comme trouvère et troubadour. Le poète, héritier d'une longue tradition orale, privilégie la
musicalité et le rythme, d'où, dans la plupart des textes poétiques, le recours à une forme versifiée qui confère de la densité à la langue. Le poète recherche
aussi l'expressivité par le poids accordé aux mots comme par l'utilisation des figures de style et au premier chef des images et des figures d'analogie,
recherchées pour leur force suggestive. La poésie s'est constamment renouvelée au cours des siècles avec des orientations différentes selon les époques, les
civilisations, les aires culturelles et les individus. On peut par exemple distinguer le poète artiste soucieux d'abord de beauté formelle, le poète « lyrique »
qui cultive le « chant de l'âme », le poète prophète, découvreur du monde et « voyant » ou le poète engagé, sans cependant réduire un créateur à une étiquette
simplificatrice.'''

liste_source = source.rstrip('\n\r').split(" ")
long_source = len(liste_source)

with open ("thes_fr.dat", 'r') as base:
for ligne in base:
ligne = ligne.rstrip('\n').split("|")
BDD.append(ligne)

if ligne[1].decode('utf-8').isdigit():
liste_def.append(int(count))

count += 1

for x in range(nb_passe):

mot = ''
fin_mot = ''

while len(mot) < 4:
num_choix_mot_source = randrange(long_source)
mot = liste_source[num_choix_mot_source]

for i in fin:
if mot[-1] == i:
fin_mot = i #conserve la fin du mot
print(fin_mot)
mot = mot[:-1] # tronque la fin du mot

for i in range(len(liste_def)):

if mot == BDD[liste_def[i]][0]: # ne parcourt que les lignes de définition

nb_sens = int(BDD[liste_def[i]][1]) # check le nb de sens

if nb_sens != 1:
choix_sens = randrange(nb_sens)+1
liste_mot = BDD[int(liste_def[i])+choix_sens] #choisi parmi les différents sens

else:
liste_mot = BDD[int(liste_def[i])+1]

synonyme = liste_mot[randrange(len(liste_mot)-1)+1] #choisi un mot dans la liste choisie

print('''"{0}" est devenu "{1}"'''.format(mot, synonyme))

liste_source[num_choix_mot_source] = synonyme+fin_mot #remplace le mot dans la liste en ajoutant la fin éventuelle

final = ""
for i in liste_source:

final += i + " "

print (final.decode('utf-8'))