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

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

Удивительно, исправил.

Магазин аккаунтов (http://wmaid.com/index.php?s=acc)
ciber
На сайте с 04.01.2008
Offline
215
#12

перловка будет быстрее пхп и питона. но я на перле пиху дольше чем на пхп. и тормознутость пхпшного скрипта вполне компенсирует малое время программирования.

firacet
На сайте с 23.07.2008
Offline
68
#13
Dmitry HT:
Ну ё-маё, Вы бы еще кол-во символов подсчитали. Там основная часть "консольный интерфейс".

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

Да, действительно, как-то не красиво я поступил.

Прошу прощения что агрессивно отреагировал на ваш скрипт!

Спасибо что выкладываете свои творения, многие даже за такое берут деньги!

А насчет памяти это огромный + Мне надо проверить файл размером 3гб на уникальность строк. Попробую ваш скриптик под это дело.

Сбылись мечты народный: Мир-Труд-Май
Dmitry HT
На сайте с 31.03.2006
Offline
58
#14
firacet:
Да, действительно, как-то не красиво я поступил.

Да все нормально! Любая критика полезна, да и я не любитель лестных отзывов.

firacet:
Мне надо проверить файл размером 3гб на уникальность строк

3 гига... не уверен, что выйдет, но попробуйте. Думаю, что прокатит если памяти хватит для хранения именно уникальных строк, т.к. они все же хранятся в оперативке ☝

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

на случай под 3 гига используем свойство уникальность mysql

CREATE TABLE IF NOT EXISTS `utext` (

`text` varchar(255) NOT NULL,

`id` int(11) NOT NULL auto_increment,

PRIMARY KEY (`id`),

UNIQUE KEY `text` (`text`)

)

<?

mysql_connect('localhost','user','pass');

mysql_select_db('uname');

$handle = fopen("/tmp/inputfile.txt", "r");

while (!feof($handle)) {

$buffer = fgets($handle, 4096);

mysql_query("INSERT INTO `testing`.`text` (`text`, `id`) VALUES ('".trim($buffer)."', NULL)");

}

fclose($handle);

?>

На выходе получаем базу с уникальными значениями

firacet
На сайте с 23.07.2008
Offline
68
#16
ciber:
на случай под 3 гига используем свойство уникальность mysql

CREATE TABLE IF NOT EXISTS `utext` (
`text` varchar(255) NOT NULL,
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`),
UNIQUE KEY `text` (`text`)
)
<?
mysql_connect('localhost','user','pass');
mysql_select_db('uname');
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
mysql_query("INSERT INTO `testing`.`text` (`text`, `id`) VALUES ('".trim($buffer)."', NULL)");
}
fclose($handle);
?>

На выходе получаем базу с уникальными значениями

Да я тоже про мускул думал, даже пробовал. Но не через пхп, а напрямую load data in file ( вроде так )

Дооооооолго работает заразО :(

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

долго конечно, но работает. иначе ни как я думаю не перелопать 3 гига текста. Просто оперативки не хватит.

R
На сайте с 13.04.2009
Offline
159
#18
ciber:
перловка будет быстрее пхп и питона. но я на перле пиху дольше чем на пхп. и тормознутость пхпшного скрипта вполне компенсирует малое время программирования.

Ни разу не быстрее 🚬,только в определенных случаях.

Знаю все 3 языка.

А вообще 3 ветку питона не стоит пока использовать,2.x сейчас все используют.

Php быстр только при написании хелло вордов,да и file() не всегда обработает такой большой фаил.

Derek
На сайте с 23.09.2005
Offline
70
#19

труъ олдскул блэкмастерз обычно делают таг:

cat file1.txt | sort | uniq >file2.txt

(.)(.) или ( Y ) ? (http://www.realderek.ru/) : как заработать 20 миллионов долларов США за 2 года (http://www.realderek.ru/2010/04/20-millions-za-2-goda.html)
Dmitry HT
На сайте с 31.03.2006
Offline
58
#20
rushter:
А вообще 3 ветку питона не стоит пока использовать

С чего бы это? Если заранее знаешь, что есть нужные модули, то почему бы и нет.

Например, одна моя сложная система отлично работает на Python 2.7 alpha 3 . А всякие мелкие скрипты, где для интерфейса достаточно возможностей tkinter - на Python 3.1.

123

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