2017-05-19 6 views
-1

Ich versuche, ein Kodierungssystem basierend auf Enigma zu machen, aber ich würde gerne eine Wendung hinzufügen. Um zu machen, anpassbar durch die Benutzer-ID zu programmieren, erstellen Sie "Dateien", die Parameter enthalten, die mein Prgramm verwenden wird, um dann die Nachricht zu verschlüsseln. Es enthält sowohl Listen als auch ganze Zahlen. Wie kann ich sie lesen?Wie lese ich Listen und int aus einer Datei?

Ich habe versucht, eine Split-Methode zu verwenden und meine Listen mit "/" zu trennen, aber die Listen werden als Strings betrachtet. Hier

ist ein Beispiel für die Paramater würde Ich mag zuweisen, um, list1, list2, list3, list4, trigger1, Trigger2, Trigger3, dass ich versuchte, mit "/" zu trennen:

[6,18,20,12,17,26,19,4,10,22,13,7,14,1,21,9,2,16,3,23,24,8,15,11,25,5]/[1,-5,6,3,-4,2,-4,-4,-3,5,-1,1,-2,-2,-1,3,4,2,5,-4,-4,-4,2,-2,1,5]/[5,-1,-1,-1,-1,1,4,-3,-1,4,1,1,-4,2,-5,4,0,-3,-1,1,-2,0,2,2,-1,-3]/[2,-1,2,0,-3,2,-1,-1,0,2,-1,2,-2,-1,1,4,2,0,-2,-5,2,-1,3,0,-3,-1]/11/5/17 

f=open("param.txt") 
param=f.read() 
list_tbl,param=param.split("/",1) 
list_pattern1,param=param.split("/",1) 
list_pattern2,param=param.split("/",1) 
list_pattern3,param=param.split("/",1) 
trigger1,param=param.split("/",1) 
trigger2,param=param.split("/",1) 
trigger3=param 

Wenn ich die Listen versuchen verwenden, können sie nicht verwendet werden, da sie Strings sind.

+2

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. Wir sollten in der Lage sein, Ihren gesendeten Code in eine Textdatei einzufügen und das beschriebene Problem zu reproduzieren. – Prune

+0

Mögliches Duplikat von [Konvertieren der Zeichenfolgendarstellung der Liste in Python] (http://stackoverflow.com/questions/1894269/convert-string-representation-of-list-to-list-in-python) –

Antwort

1

Werfen Sie einen Blick auf ast.literal_eval, die im Grunde, was Sie eine Liste aus einer Zeichenkette wie diese machen wollen also tun:

from ast import literal_eval 
my_string = '[0, 1, 2, 3]' 
my_list = literal_eval(my_string) 

Um mehrere Variablen erstellen Sie ein Wörterbuch statt und es können dann nur holen B.:

my_dict = {} 
for i in range(10): 
    my_dict['list' + str(i)] = <some value> 

das ist definitiv hübscher als verschwenden Linien beim Erstellen jeder Variable.

Verwandte Themen