So habe ich ein Programm, das einen Satz in einer TXT-Datei sieht. Das Programm findet dann die Position jedes Wortes im Satz sowie die eindeutigen Wörter im Satz. Diese beiden Listen werden im Programm ausgegeben, und dann versucht das Programm, den ursprünglichen Satz in der .txt-Datei basierend auf den eindeutigen Wörtern im Satz und der Position der Wörter im Satz neu zu erstellen, die dann im Programm ausgegeben werden sollten. Der Code, den ich bis jetzt habe, ist unten gezeigt:Fehler beim Erstellen von Satz
import json
import os.path
def InputFile():
global compfilename
compfilename = input("Please enter an existing compressed file to be decompressed: ")
def Validation2():
if compfilename == (""):
print ("Nothing was entered for the filename. Please re-enter a valid filename.")
Error()
if os.path.exists(compfilename + ".txt") == False:
print ("No such file exists. Please enter a valid existing file.")
Error()
def OutputDecompressed():
global words
global orgsentence
newfile = open((compfilename)+'.txt', 'r')
saveddata = json.load(newfile)
orgsentence = saveddata
words = orgsentence.split(' ')
print ("Words in the sentence: " + str(words))
def Uniquewords():
for i in range(len(words)):
if words[i] not in unilist:
unilist.append(words[i])
print ("Unique words: " + str(unilist))
def PosText():
global pos
find = dict((sentence, words.index(sentence)+1) for sentence in list(words))
pos = (list(map(lambda sentence: find [sentence], words)))
return (pos)
def Error():
MainCompression()
def OutputDecompressed2():
for number in pos:
decompression.append(orgsentence[int(number)-1])
finalsentence = (" ".join(decompression))
print ("Original sentence from file: " + finalsentence)
def OutputText():
print ("The positions of the word(s) in the sentence are: " + str(pos))
def MainCompression():
global decompression
decompression = []
global unilist
unilist = []
InputFile()
Validation2()
OutputDecompressed()
Uniquewords()
PosText()
OutputText()
OutputDecompressed2()
MainCompression()
Ein Beispieltest wird jetzt beschrieben. Sagen, es ist eine .txt-Datei mit dem Namen ‚ohdear‘ und enthält den Satz: „hallo hallo hallo hallo“
Jetzt wird das Programm wie folgt dar:
Please enter an existing compressed file to be decompressed: ohdear
Words in the sentence: ['hello', 'hello', 'hello', 'hello']
Unique words: ['hello']
The positions of the word(s) in the sentence are: [1, 1, 1, 1]
Original sentence from file: h h h h
Wie Sie sehen können, war der ursprüngliche Satz nicht aus den einzigartigen Wörtern und Positionen der Wörter im Satz rekonstruiert - seltsamerweise wurden 4 Stunden angezeigt. Kann jemand mit diesem Fehler helfen, weil ich keine Idee habe, wie man den ursprünglichen Satz von den eindeutigen Wörtern und der Position von Wörtern im Satz gerade neu erstellt. Das Problem liegt in der Funktion OutputDecompressed2(). Danke für jede Hilfe im Voraus. Ich habe für eine Weile auf diese stecken ...
Danke, es funktioniert jetzt! – Kronixion