2 expee
у тебя второй файл где лежат строки для удаления, содержит сколько строк ? если конечно во втором файле пару строк, тогда работает быстро)
у меня первый - 450к, второй - 350к
AttributeError: ‘list’ object has no attribute ‘difference’upd:
expee@localhost:~/dev/python$ time python hehe.pyИ это на моем дюроне с 1.2 mhz и 378мб ram =/ У вас должно быть маленько побыстрее.
real 0m2.310s
user 0m0.524s
sys 0m0.184s
expee@localhost:~/dev/python$ time python hehe.py
real 0m1.295s
user 0m0.552s
sys 0m0.168s
expee@localhost:~/dev/python$ time python hehe.py
real 0m0.694s
user 0m0.496s
sys 0m0.192s
expee@localhost:~/dev/python$ time python hehe.py
real 0m0.736s
user 0m0.516s
sys 0m0.188s
expee@localhost:~/dev/python$
expee@localhost:~$ cd dev/python/Отсюда видно, что lines и text имеют одинаковый размер ~26мб. И последующие замеры - первый выполняется долго (но не > 5 минут, как сказали), а последующие быстро. У тебя должно быть довольно быстро :)
expee@localhost:~/dev/python$ ls -l
total 53396
-rw-r–r– 1 expee expee 438 2009-12-31 13:12 hehe.py
-rw-r–r– 1 expee expee 27333306 2009-12-31 12:57 lines
-rw-r–r– 1 expee expee 27333306 2009-12-31 12:57 text
expee@localhost:~/dev/python$ time python hehe.py
real 0m3.976s
user 0m0.468s
sys 0m0.160s
expee@localhost:~/dev/python$ time python hehe.py
real 0m0.831s
user 0m0.544s
sys 0m0.144s
expee@localhost:~/dev/python$ time python hehe.py
real 0m0.690s
user 0m0.504s
sys 0m0.180s
expee@localhost:~/dev/python$
expeeОткуда там взялся list? Там же set.
Кстати код Ed'а валится:AttributeError: ‘list’ object has no attribute ‘difference’
KogromЯ тоже не понимаю откуда :)
Откуда там взялся list? Там же set.
а вот то, что он удаляет из B одинаковые строки, которых нет в A - это уже дефект.Это где? Я старался сделать так, как в исходном варианте было.
Ещё добавлено: вам надо составит скрипт, который генерит файлы A и B для теста. А то вы сравниваете разные файлы.Согласен. Думаю, что лучший источник - данные superduck, как топикстартера.
EdДа. Но автор темы тоже делает больше того, что в задании написано.
Это где? Я старался сделать так, как в исходном варианте было.
Там же тоже set делается, гляньте внимательнее. Или я не о том?
KogromДля меня заданием было ускорить скрипт топикстартера, а не то, что стоит в топике темы.
Да. Но автор темы тоже делает больше того, что в задании написано.
expeeВот мой аналогичный лог. Файлы поменьше, правда и питон у меня 2.5, поэтому я убрал использование with:
Вот полный лог сессии в консоли:
$ cat hehe.py
#!/usr/bin/env python
# coding=utf-8
lines = open('lines').readlines()
intxt = open('text').read()
for line in lines:
intxt = intxt.replace(line, '')
f = open('new', 'w')
f.write(intxt.replace('\n\n', '\n'))
f.close()
$ ls -la
total 23564
drwxr-xr-x 2 ed ed 4096 2009-12-31 14:07 .
drwxr-xr-x 7 ed ed 4096 2009-12-31 14:01 ..
-rwxr-xr-x 1 ed ed 227 2009-12-31 14:07 hehe.py
-rw-r--r-- 1 ed ed 12038359 2009-12-31 14:01 lines
-rw-r--r-- 1 ed ed 12038359 2009-12-31 14:02 text
$ time python hehe.py
real 9m43.283s
user 8m35.180s
sys 1m5.836s