2016-04-10 5 views
-5

У моего кода есть файл "filefile.txt", в котором есть сжатое предложение. Файл выложен как:Как распаковать файл

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

This 
is 
a 
sentence 
. 
too 
! 
Yo 
yo 
bling 

Оригинальный текст, который я хочу разложить, говорит: «!»

Мой код говорит:

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) 

Это ошибка:

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 

мне нужно sentencewords содержать "Это предложение Это слишком Yo Yo побрякушки побрякушки!"

Я изменил его сейчас, но он все еще не работает. sentencewords.append (перечислить (script2.enumerate (р)))

'Traceback (most recent call last): 

файла "F: \ Вычислительный код пытается \ AT13.py", строка 46, в sentencewords.append (пронумеровать (script2.enumerate (p))) AttributeError: объект 'list' не имеет атрибута 'enumerate' '

Кто-нибудь знает, есть ли другой способ обойти эту проблему или как исправить мой текущий код?

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 = [] 

indexes = [] 
for line in fo: 
    if line.strip().isdigit(): 
     indexes.append(line) 
    else: 
     break 


words = [line.strip() for line in fo if line.strip()] 

while len(script) > 0: 
    for p in script: 
     sentencewords.append(words[index-1]) 


print(sentencewords) 

Обновленный код, но я не знаю, что означает объект ввода-вывода в последнем выпуске python.

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. 

Любые предложения о том, как исправить мой код, я был бы благодарен за

+0

Какие ошибки вы получаете? – vaultah

+0

Пожалуйста, укажите свой вопрос, который указывает содержание вопроса. – khelwood

+0

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

ответ

0

Ваш код использует файл синтаксический, пока файл находится близко:

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

Вы можете задержать fo.close() до конца вашего скрипта, и он пройдет ValueError: I/O operation on closed file.

Смежные вопросы