Форум сайта python.su
0
спасибо ! с наступающим !!!!!
О да, опыт….бы предпочла вторую часть, ту, что про “гений парадоксов друг”:)
но, увы, учиться, учиться….
попробовала с пустым аргументом, но список перестал делиться…
>>> celex = {}
>>> f = open('/home/inna/nltk_data/corpora/diss/celex.txt', 'r')
>>> for line in f:
line = line.strip()
zuordnung = line.split()
if len(zuordnung) !=2:
print zuordnung
continue
celex[zuordnung[0]] = zuordnung[1]
[]
>>> for line in f:
line = line.strip()
zuordnung = line.split()
if len(zuordnung) !=2:
print 'bad str: ' ,zuordnung
continue
celex[zuordnung[0]] = zuordnung[1]
>>> f.close()
>>>Офлайн
18
1. Вы два раза перебираете f
итератор то уже пустой
2. В вашем коде как вы поверяете что словарь пустой?
print celex
Офлайн
857
leonaпереписываешь сюда задание в точности и пример содержимого файла (строк десять)
О да, опыт….бы предпочла вторую часть, ту, что про “гений парадоксов друг”smile
но, увы, учиться, учиться….
Офлайн
0
спасибо !
я пытаюсь решить свою собственную задачу, постараюсь менее вязко сформулировать.
мне нужно из списка выбрать глаголы и сохранить их в отдельном файле вместе с их частотами.
выбрать глаголы довольно просто - отфильтровать слова, те, которые оканчиваются на ‘en’, ‘rn’ и начинаются с маленькой буквы.
там, конечно, другие части речи попадутся, но их процент очень мал, отсею вручную.
первые пары из файла celex.txt:
Ae 4
aalen 1
Aal 80
aalglatt 0
Aar 2
Aas 6
Aasgeier 2
ab 2171
ab 2171
Abakus 0
abaendern 16
abaenderlich 0
Abaenderung 17
Abandon 0
abandonnieren 0
abarbeiten 3
abarten 0
С наступающим Новым !)
Офлайн
857
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
if __name__ == '__main__':
infile = 'celex.txt'
outfile = 'output.txt'
with open(infile) as fin, \
open(outfile, 'w') as fout:
for line in fin:
word, freq = line.split()
if word[0].lower() == word[0] and \
word.endswith(('en', 'rn')):
print >>fout, word, freq
print 'ok'
Отредактировано (Дек. 31, 2011 18:02:12)
Офлайн
0
:) спасибо ! с Новым годом!!!!!!!!!!!!!!!!!!!!
попробовала Ваш скрипт, не прошла дальше 4 строчки, пайтон выдает синтаксическую ошибку при переносе строки, выделяет красным символ “,”
IDLE 2.6.5 ==== No Subprocess ====
>>> if __name__ == '__main__':
infile = '/home/inna/nltk_data/corpora/diss/celex.txt'
outfile = 'output1.txt'
with open(infile) as fin, \
SyntaxError: invalid syntax
Офлайн
857
его надо сохранить в файл script.py и просто запустить
Офлайн
0
запустила через run, выдал ту же самую синтаксическую ошибку - указывает на запятую после fin….(
а терминал пишет:
@egoist:~$ python script.py
File “script.py”, line 9
with open(infile) as fin, \
^
SyntaxError: invalid syntax
попробовала еще вот так вот, но тоже без успеха:
@egoist:~/python_examples$ ./script.py
File “./script.py”, line 9
with open(infile) as fin, \
^
SyntaxError: invalid syntax
@egoist:~/python_examples$
Отредактировано (Янв. 1, 2012 14:22:53)
Офлайн
857
да, вижу
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
if __name__ == '__main__':
infile = 'celex.txt'
outfile = 'output.txt'
with open(infile) as fin:
with open(outfile, 'w') as fout:
for line in fin:
word, freq = line.split()
if word[0].lower() == word[0] and \
word.endswith(('en', 'rn')):
print >>fout, word, freq
print 'ok'
Офлайн
0
спасибо ! запустила Ваш скрипт, но пайтон теперь другую ошибку выдает, связанную с делением списка:
Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split()
ValueError: need more than 0 values to unpack
в исходном файле было много информации, которая мне не нужна.
он вот так выглядел:
1\A\563\0\95\1.9777\531\99\1.9956\32\54\1.7324
2\Ae\4\0\1\0\3\1\0\1\2\.301
3\aalen\1\0\0\0\1\0\0\0\0\0
мне нужны только второй и третий “элемент”. я в Exel поделила на столбцы автоматически, убрав “\” и сохранила в txt. может, в этом проблема?
попробовала так: = line.split(“\t”)
выдал ошибку: Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split(“\t”)
ValueError: need more than 1 value to unpack
исправила на: =line.split(“ ”)
выдал: Traceback (most recent call last):
File “/home/inna/nltk_data/corpora/diss/script2.py”, line 12, in <module>
word, freq = line.split(“ ”)
ValueError: too many values to unpack
PS: набрала от руки пару слов из списка, ошибок не было, все в порядке. значит траблы с txt файлом.
что делать? буду признательна за совет!
Отредактировано (Янв. 2, 2012 11:27:30)
Офлайн