2017-10-20 25 views
0

Nous avons donc reçu un devoir de créer un code qui trie un long message rempli de caractères spéciaux (par exemple [, {,%, $, *) avec seulement quelques caractères alphabétiques dans tout l'objet pour faire un spécial message.Comment décoder un fichier texte en extrayant des caractères alphabétiques et en les listant dans un message?

J'ai cherché sur ce site pendant un certain temps et n'ai rien trouvé de suffisamment spécifique qui fonctionnerait.

je mets le fichier texte dans un pastebin si vous voulez voir

https://pastebin.com/48BTWB3B

Anywho, ce que je suis venu avec pour le code jusqu'à

code = open('code.txt', 'r') 
lettersList = code.readlines() 
lettersList.sort() 

for letters in lettersList: 
    print(letters) 

Il imprime le code.txt mais dans des listes courtes, en le coupant essentiellement en plus petits morceaux. Je veux qu'il trouve et trier les caractères alphabétiques dans une liste et imprime le message décodé.

Répondre

0

C'est quelque chose que vous pouvez faire assez facilement avec regex.

import re 
with open('code.txt', 'r') as filehandle: 
    contents = filehandle.read() 
letters = re.findall("[a-zA-Z]+", contents) 

si vous voulez condenser la liste en une seule chaîne, vous pouvez utiliser une jointure:

single_str = ''.join(letters) 
+0

Merci. Il suffit de soumettre, mais pour référence future, est-il possible de faire imprimer les lettres sans les apostrophes qui les entourent – stripbubbles

+0

Vous pouvez utiliser '' .join (lettres). J'ai modifié la réponse ci-dessus pour inclure ceci. –