Wie kann ich in Python zwei Dateien Textdateien in ein dict überführen und passend ordnen?
Folgendes ist meine Aufgabe. Die Dateien habe ich bereits eingelesen und muss sie jetzt auch in ihrem Format nutzen, aber ich weiß nicht, wie. Würde mich freuen, wenn mir jemand helfen kann.
Schreiben Sie ein python-Programm, welches zwei Dateien einließt. Die erste Datei ist ein Text, der
Verschlüsselt werden soll. In der zweiten Datei ist die Abbildung gespeichert, die zur Verschlüsselung
genutzt werden soll.
Bspw.:
a : r
b : g
c : t
…
Ihr Programm soll in der Lage sein einen Text mit dieser Abbildung zu verschlüsseln, indem jeder
Buchstabe des Textes anhand der eingelesenen Abbildung ersetzt wird bzw. die Ersetzung beim
Entschlüsseln rückgängig gemacht wird.
Ihr Programm soll per Benutzereingabe erfragen, ob die Datei verschlüsselt oder entschlüsselt
2 Antworten
Die zweite Datei solltest du zeilenweise auslesen. Jede Zeile muss anhand der Trennsequenz aufgespalten werden. In deinem Fall wäre das wohl " : ".
pair = line.split(" : ")
Das Ergebnis ist eine Liste. Der erste Eintrag muss als Key in ein dict gespeichert werden, der zweite Eintrag als der dazu assoziative Wert.
Danach kannst du Zeichen für Zeichen durch den zu transferierenden Text gehen und anhand des Dictionary die passende Übersetzung herausfinden.
encoded_letter = your_dict[current_letter]
all_values = list(your_dict.values())
all_keys = list(your_dict.keys())
key_index = all_values.index(current_letter)
decoded_letter = all_keys[key_index]
Was für einen nullten Index?
Du schreibst, dass die Datei für die Übersetzungen so aufgebaut ist:
a : r
b : g
c : t
Also hast du in jeder Zeile einen Schlüssel (a, b, c) und einen Wert (r, g, t), die voneinander durch eine Trennsequenz getrennt sind. Da dich nur Schlüssel und Wert für dein Dictionary interessieren, muss jede Zeile geparst werden. Die Trennsequenz wird gefiltert und Schlüssel und Wert herausgebrochen. Dafür kann man die split-Funktion nutzen. Es gibt natürlich auch noch andere Wege.
Bau dir zuerst das Dictionary zusammen. Den Text aus der anderen Datei kannst du danach auslesen und übersetzen. Ein Schritt nach dem anderen.
Dankeschön, allerdings habe ich immer noch nicht verstanden aus wie das dict zusammengestellt werden muss.
#Dateien Einlesen
zu_verschlüsseln = open(Datei)
schlüssel = open(Datei)
#schlüssel erstellen
Schlüssel_dict = {}
for Wert in schlüssel :
Schlüssel_dict.update(dict([Wert.split(' : ')]))
schlüssel.close()
#verschlüsseln
string = ''
for Wert in zu_verschlüsseln.read()
if Wert in Schlüssel_dict :
string += Schlüssel_dict[Wert]# Wert ersetzt
else :
string += Wert# Wert nicht nicht in der Datei vorhanden, bleibt
zu_verschlüsseln.close()
Ich verstehe den Code noch nicht ganz. Bis jetzt habe ich folgendes:
file_encode = open("encoding.txt","r")
file = open("text.txt","r")
lines =file.readlines()
for line in lines:
und jetzt hätte ich ein dict gemacht und wäre in den 0.ten Index gegangen.