Bonjour à tous,
J'ai posé plusieurs questions ces temps-ci pour réaliser un petit script utile pour mon travail .
Cependant là je cale je pense qu'il y a un problème de conception ou autre je ne vois pas comment trouver une solution .
En gros mon script dans l'ideal marcherait comme suit : 1. Le script va chercher dans un dossier tous les fichiers .txt 2. Il stocke le nom de chaque fichier pour créer une sorte de "catégorie" (par exemple urbanisme.txt le contiendra que des mots clés sur l'urbanisme) 2bis. Il ouvre ce fichier 3. Il crée une liste avec tous les mots-clés du document appelée [sujet]_liste 4. Il va créer des variables pour chaque sujet (ex: urbanisme_clic, urbanisme_engagement …ect) 5. Il va tester pour chaque liste créée en début de document le fichier csv ligne à ligne pour catégoriser chaque ligne (une ligne peut être multi catégorisée donc aucun soucis pas besoin de les exclure du test du sujet 2 si le sujet 1 est positif sur une ligne) 6. Il va ensuite prendre les valeurs du csv de chaque catégorie calculée précédemment pour faire des stats par catégorie
J'ai donc sorti ceci pour tester les fichiers et créer les variables necessaires:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #coding: utf-8 import csv import os #--------------------------------------TEST LISTE + CREATION VARIABLES------------------------------------ #--------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------- #Déclaration variables liste_fichier=[] liste_document = os.listdir('.') liste_sujets=[] #Listing fichiers/documents dans le dossier courant + création liste fichiers for elt in liste_document: chaine=elt if chaine.split(".")[-1] =="txt": liste_fichier.append(elt) #Création liste sujets for elt in liste_fichier: chaine=elt liste_sujets.append(chaine.split(".")[-2]) #PASSAGE DES VARIABLES dictionnaire={} k=0 kmax=len(liste_sujets) while k<kmax: key=liste_sujets[k] dictionnaire[key]=open(liste_fichier[k],"r",encoding="utf-8") k+=1 k=0 while k<kmax: key=liste_sujets[k]+"_compte" dictionnaire[key]=0 k+=1 k=0 while k<kmax: key=liste_sujets[k]+"_impression" dictionnaire[key]=0 k+=1 k=0 while k<kmax: key=liste_sujets[k]+"_engagement" dictionnaire[key]=0 k+=1 k=0 while k<kmax: key=liste_sujets[k]+"_clic" dictionnaire[key]=0 k+=1 k=0 while k<kmax: key=liste_sujets[k]+"_liste" dictionnaire[key]=[] k+=1 k=0 #création variable a la barbare locals().update(dictionnaire) |
et ceci pour les calculs (pour le moment je n'ai pas réuni le tout ensemble car cela justement ne fonctionnais pas)L'ouverture du fichier "finance" étant pour les test mais le but est que le fonctionnement soit automatique en fonction des fichiers trouvés par le script précédent . Donc je ne veux pas coder "en dur" le nom des fichiers à ouvrir car je ne peux les connaître à l'avance:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | fichier = csv.reader(open("test2.csv","r",encoding="utf-8")) finance=open("finance.txt","r",encoding="utf-8") #déclaration variables calcul finance_list=[] texte_brut="" texte=[] impression=0 engagement=0 clic=0 finance_compte=0 finance_impression=0 finance_engagement=0 finance_clic=0 #Création liste test for ligne in finance: finance_list.append(ligne.rstrip("\n")) #Lecture fichier stat for row in fichier: texte_brut=row[2] texte=texte_brut.split() impression=float(row[4]) engagement=float(row[5]) clic=float(row[11]) #test thematique for elt in texte: if elt in finance_list: finance_compte+=1 finance_impression+=impression finance_engagement+=engagement finance_clic+=clic break else: continue finance_compte=int(finance_compte) finance_impression=int(finance_impression) finance_engagement=int(finance_engagement) finance_clic=int(finance_clic) print("----------------FINANCE----------------") print("Nombre de Tweet finance : ",finance_compte) print("Impressions totales : ",finance_impression) print("Engagement total : ",finance_engagement) print("Nombre de clics sur les liens : ",finance_clic) print("---------------------------------------") os.system("pause") |
Je suis bloqué par plusieurs point par exemple comment créer dynamiquement une variable urbanisme=open("urbanisme.txt","r") ? Cela ma semble non recommandé en python voir impossible
Si vous avez des pistes pour aboutir au résultat voulu je suis preneur
Merci beaucoup