Скрипт поиска уникальных строк (Python 3.1)

12 3
Dmitry HT
На сайте с 31.03.2006
Offline
58
3138

Всем привет!

Как уже сказано в САБЖе: скрипт находит только уникальные записи в исходном файле "i.txt" и записывет их в файл с результатом "o.txt".

Небольшой "ReadMe.txt" есть и в архиве со скриптом.

Можно чистить базы урлов, мыл и т.п. списки. Работает довольно шустро: например, 7 млн записей отработал за 15 сек. Надеюсь, что пригодится кому-нибудь :popcorn:

Магазин аккаунтов (http://wmaid.com/index.php?s=acc)
BredoGen.
На сайте с 19.10.2009
Offline
98
#1

Огромное спасибо! :)

Пригодится для практики.

ciber
На сайте с 04.01.2008
Offline
215
#2

<?

$text=file("file.txt");

array_unique($text);

$text=implode('/r/n',$text);

file_put_contents("gotovo.txt",$text);

Удивительно
На сайте с 07.07.2009
Offline
215
#3

ciber, +1

И работать будет быстрее

Качественная семантика недорого ( https://moab.tools/ )
firacet
На сайте с 23.07.2008
Offline
68
#4

Как альтернатива

<?

$data = file("data.txt",FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);

$data = array_unique($data);

file_put_contents("data_uniq.txt",implode("\n",$data));

?>

или я не так понял ваш функционал?

firacet добавил 10.02.2010 в 14:36

Блин, пока писал уже такое запостили ))))))

firacet добавил 10.02.2010 в 14:37

ciber:
<?
$text=file("file.txt");
array_unique($text);
$text=implode('/r/n',$text);
file_put_contents("gotovo.txt",$text);

А вот array_unique возвращяет масив без дублей, а не чистит по ссылке то что передано.

Сбылись мечты народный: Мир-Труд-Май
BredoGen.
На сайте с 19.10.2009
Offline
98
#5
Удивительно:
И работать будет быстрее

Ну, пайтон порвёт пхп по скорости в любом случае. Не знаю даже во сколько раз.

Реализация на пхп будет работать гораздо медленнее, не знаю, конечно, как правильно сделал ТС, но если говорить о ситуации в целом.

Dmitry HT
На сайте с 31.03.2006
Offline
58
#6

Молодцы, круто! Уже и выбор есть если вдруг кому-либо понадобится.

А сам я PHP не знаю, а этот взялся написать, чтобы дополнительно попрактиковаться. Так что не судите строго...

Удивительно:
ciber, +1
И работать будет быстрее

С чего это Вы взяли?

Удивительно
На сайте с 07.07.2009
Offline
215
#7
BredoGen.:
Ну, пайтон порвёт пхп по скорости в любом случае. Не знаю даже во сколько раз.
Реализация на пхп будет работать гораздо медленнее, не знаю, конечно, как правильно сделал ТС, но если говорить о ситуации в целом.

Да, я согласен насчет скорости питона - тут спору нет.

Просто 7к за 15 сек - это чересчур.

На РНР приведенные скрипты отработают за полсекунды.

P.S Упс. Недосмотрел. 7кк строк. Тогда норм :)

firacet
На сайте с 23.07.2008
Offline
68
#8
BredoGen.:
Ну, пайтон порвёт пхп по скорости в любом случае. Не знаю даже во сколько раз.
Реализация на пхп будет работать гораздо медленнее, не знаю, конечно, как правильно сделал ТС, но если говорить о ситуации в целом.

Ну блин, в архиве 1.3 кб. а в пхп три строки.

Я таким скриптом 100 метровые файлы на дубли чищу и ничего, быренько все работает.

Да и 7к строк 15 секунд это что-то оооооочень долго.

Dmitry HT
На сайте с 31.03.2006
Offline
58
#9
firacet:
Ну блин, в архиве 1.3 кб. а в пхп три строки.

Ну ё-маё, Вы бы еще кол-во символов подсчитали. Там основная часть "консольный интерфейс".

п.с. можно было бы значительно ускорить процесс за счет считывания всего файла в память, но это бы ограничило возможности скрипта размерами свободной оперативной памяти.

Удивительно
На сайте с 07.07.2009
Offline
215
#10

Всё ок, Dmitry HT, спасибо

Просто вместо 7кк стоит писать 7 млн - так нагляднее ;)

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий