Bonjour,
Comme ça ne sers à rien j'ai créé un script qui tri les mots en fonction
du nombre de caracteres et le fait qu'il n'y ai qu'une seule occurences
de chaque caracteres dans le mot.
Attention:- pour python 2.* (pour Python 3 enlevez les decode() & encode())
- Mettez le fichier texte dans la variable ou en argument
apres commande Ex:$Python SelectCD.py /home/User/list_mots.txt
# -*-coding:utf-8-*-
# __AUTOR__='M4RK05'
import re, sys
import os, time
temps= time.time() # Chrono.
# Façon Améliorée avec double-boucle et range(start, stop) 9 lignes de moins!
def occur(mot):
""" Fonction qui vérifie qu'il n'y ai qu'une seule occurence de chaque caractères"""
alph= "abcdeéèfghiîïjklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
hig=[]
for x in range(56):
hig.append(mot.count(alph[x]))
for g in range(2, 7):
if hig.count(g)> 0:
return False
break
else:
pass
return True
# Première façon trouvée (pas très beau lol!)
def occu(mot):
""" Fonction qui vérifie qu'il n'y ai qu'une seule occurence de chaque caractères"""
alph= "abcdeéèfghiîïjklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
hig=[]
for x in range(56):
hig.append(mot.count(alph[x]))
if hig.count(2)> 0:
return False
break
elif hig.count(3)> 0:
return False
break
elif hig.count(4)> 0:
return False
break
elif hig.count(5)> 0:
return False
break
else:
pass
return True
# Nombre de positifs puis de négatif:
nbuen=0
nerrors= 0
# Expression reguliere pour obtenir tous les mots de 10 caractères
# reg= r"^[A-Za-z]{10,10}$"
# Fichier à traiter en dur.
fi1= '/home/fred/liste-francais'
# Fichier à traiter passé en argument au script python.
fi2= str(sys.argv[1])
with open(fi2, "r") as mon_fichier :
txt= mon_fichier.read()
liste= txt.split()
for line in liste:
line.decode('utf8')
if re.match(r"^[A-Za-z]{10,10}$", line ) and occur(line)== True:
print (line.encode('utf8') +" "+ str(occu(line))+" 10 unicS C. *****")
nbuen+=1
else:
nerrors +=1
ri=4
#time.sleep(19)
tmp= time.time()- temps
tem= str(tmp)
if float(tem) > 9.0:
ri= 5
elif float(tem) > 99.0:
ri= 6
elif float(tem) > 999.0:
ri= 7
else:
pass
print("------------------------------------")
print(" Terminé avec "+ str(nerrors) +" mots éliminés!")
print("------------------------------------")
print("Terminé "+ str(nbuen) +" mots trouvés!En "+ tem[:ri] +" sec.")
print("------------------------------------")
print("n")
print("-------------Par M4RK05--------------")
print("le nom du script est ==> "+ str(sys.argv[0]))
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.