2016-04-10 9 views
-5

Mein Code hat eine Datei "filefile.txt", die einen komprimierten Satz enthält. Die Datei ist wie folgt angeordnet:So dekomprimieren Sie eine Datei

1 
2 
3 
4 
5 
1 
2 
6 
9 
10 
11 
2 
12 
12 
9 

This 
is 
a 
sentence 
. 
too 
! 
Yo 
yo 
bling 

Der ursprüngliche Text, den ich dekomprimieren möchte, sagt "!"

Mein Code sagt:

fo = open("filefile.txt","r") 
script = fo.readline() 
script2 = fo.readline() 
fo.close() 
script2 = script2.split() 
script = [s.strip("\n") for s in script] 

sentencewords = [] 

while len(script) > 0: 
    for p in script: 
     sentencewords.append(enumerate(script2.index(p))) 
     script.remove(0) 

print(sentencewords) 

Dies ist der Fehler:

Traceback (most recent call last): 
    File "F:\Computing code attempts\AT13.py", line 46, in <module> 
    sentencewords.append(enumerate(script2.index(p))) 
ValueError: '1' is not in list 

Ich brauche sentencewords zu enthalten. "Das ist ein Satz Dies ist auch Yo yo bling bling!"

Ich habe es jetzt geändert, aber es funktioniert immer noch nicht. sentencewords.append (Aufzählen (script2.enumerate (p)))

'Traceback (most recent call last): 

Datei "F: \ Computercode versucht \ AT13.py", Zeile 46, in sentencewords.append (Aufzählen (script2.enumerate (p))) AttributError: 'list' -Objekt hat kein Attribut 'enumerate' '

Weiß jemand, ob es ein anderes Verfahren gibt, um dieses Problem zu lösen oder wie ich meinen aktuellen Code repariere?

Aktualisierter Code, aber ich weiß nicht, was die I/O-Sache in der neuesten Ausgabe von Python bedeutet.

Traceback (most recent call last): 
    File "F:/Computing code attempts/attempt14.py", line 45, in <module> 
    for line in fo: 
ValueError: I/O operation on closed file. 

Vorschläge, wie mein Code zu beheben, würde ich für

+0

passieren Welche Fehler erhalten Sie? – vaultah

+0

Geben Sie Ihrer Frage einen Titel, der den Inhalt der Frage angibt. – khelwood

+0

http://meta.stackexchange.com/a/10812/312450 – Paul

Antwort

0

Ihr Code verwendet eine Datei Parsing dankbar sein, während die Datei schließen ist:

fo.close() 
... 
indexes = [] 
for line in fo: 

Sie die fo.close() verzögern bis zum Ende des Skripts und es wird die ValueError: I/O operation on closed file.