<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Самый быстрый способ выборки случайного файла из директории]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=26258&amp;type=atom" />
	<updated>2013-02-04T18:07:16Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=26258</id>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=325286#p325286" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Попробуйте убрать эту проверку</p></blockquote></div><p> Спасибо, так работает и похоже правильно.<br />Позже потестирую еще по скорости, но на глазок опять таки Питон рулит!</p>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-04T18:07:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=325286#p325286</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=325273#p325273" />
			<content type="html"><![CDATA[<p>Попробуйте убрать эту проверку<br /></p><div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>if isfile(f):</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-04T17:40:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=325273#p325273</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=325261#p325261" />
			<content type="html"><![CDATA[<p>Не работает.<br />Запустил, все это очень долго стояло, я думал шуршит, а потом думаю дай гляну сколько уже сделало - смотрю в html_out - а там пусто.<br />на Ctrl+C убил скрипт&nbsp; - выдало следующее:<br /></p><div class="codebox"><pre><code>$ ./start 
^CTraceback (most recent call last):
  File &quot;./start&quot;, line 26, in &lt;module&gt;
    if isfile(f):
  File &quot;/usr/lib/python2.6/genericpath.py&quot;, line 31, in isfile
    return False
KeyboardInterrupt</code></pre></div>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-04T17:08:38Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=325261#p325261</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324843#p324843" />
			<content type="html"><![CDATA[<p>Пробуйте<br /></p><div class="codebox"><pre><code>#!/usr/bin/env python
#-*- coding: utf-8 -*-

from os import listdir, remove
from os.path import isfile, join 
from re import compile 

PATT = compile(r&#039;&lt;b&gt;|&lt;/b&gt;|&lt;strong&gt;|&lt;/strong&gt;&#039;)
PATT2 = compile(r&#039;href=\&quot;(.+?)\&quot;&#039;)

def conv(f):
    desc = open(join(&#039;./html_in&#039;, f), &#039;r&#039;)
    data = desc.read()
    data = PATT.sub(&#039;&#039;, data)
    data = PATT2.sub(r&#039;href=&quot;http://site.ru/redir.php?\1&quot;&#039;, data)
    desc.close()
    desc = open(join(&#039;./html_out&#039;, f), &#039;w&#039;)
    desc.write(data)
    desc.close()
    remove(join(&#039;./html_in&#039;, f))

while True:
    files = listdir(&#039;./html_in&#039;)
    if len(files) &gt; 0:
        for f in files:
            if isfile(f):
                conv(f)
    else:
        break</code></pre></div><p>Скрипт запускать из директории, содержащей html_in и html_out.</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-02T10:50:03Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324843#p324843</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324831#p324831" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p><a href="http://site.ru/redir.php?">http://site.ru/redir.php?</a></p></blockquote></div><p> именно так<br />то есть каждое вхождение:<br /></p><div class="quotebox"><blockquote><p>href=&quot;http://</p></blockquote></div><p>меняется на<br /></p><div class="quotebox"><blockquote><p>href=&quot;http://site.ru/redir.php?http://</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-02T09:32:45Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324831#p324831</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324821#p324821" />
			<content type="html"><![CDATA[<p>Я sed не знаю, поэтому здесь <br /></p><div class="quotebox"><cite>valet пишет:</cite><blockquote><p>прописывает все ссылки через редирект</p></blockquote></div><p>поподробнее. Ко всем ссылкам добавляет </p><div class="codebox"><pre><code>http://site.ru/redir.php?</code></pre></div><p> ?</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-02T08:51:03Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324821#p324821</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324801#p324801" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Что делает этот второй скрипт?</p></blockquote></div><p> Убирает из файла все теги <br /></p><div class="quotebox"><blockquote><p>&lt;strong&gt; &lt;/strong&gt; &lt;b&gt; &lt;/b&gt;</p></blockquote></div><p>И прописывает все ссылки через редирект</p><p>Вот код этого sed-скрипта:<br /></p><div class="codebox"><pre><code>#!/bin/sed -rf

s~&lt;/b&gt;~∑&lt;/b&gt;~gi
s~&lt;b&gt;([^∑]+)∑&lt;/b&gt;~\1~gi
s~&lt;/strong&gt;~∑&lt;/strong&gt;~gi
s~&lt;strong&gt;([^∑]+)∑&lt;/strong&gt;~\1~gi
s~(href=&quot;)([^&quot;]+)~target=&quot;_blank&quot; href=&quot;http://site.ru/redir.php?\2~gi
s~∑~~gi</code></pre></div>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-02T06:07:12Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324801#p324801</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324766#p324766" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>valet пишет:</cite><blockquote><p>Второй скрипт обрабатывает sed&#039;ом файлы из html_in и ложит их в html_out</p></blockquote></div><div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Что должен делать сторонний скрипт?</p></blockquote></div><p>Что делает этот второй скрипт?</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-01T16:46:59Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324766#p324766</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324765#p324765" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Либо опишите задачу полностью. Что должен делать сторонний скрипт? Тогда можно попробовать всё на Python переписать, без костылей</p></blockquote></div><p> Я это сделал еще в первом посте.<br /></p><div class="quotebox"><blockquote><p>Задача такая - имеется один скрипт, который постоянно складывает файлы в каталог html_in. Второй скрипт обрабатывает sed&#039;ом файлы из html_in и ложит их в html_out</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-01T16:45:31Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324765#p324765</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324756#p324756" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Неа:)</p></blockquote></div><p> я вижу ))</p>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-01T16:24:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324756#p324756</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324753#p324753" />
			<content type="html"><![CDATA[<p>Либо опишите задачу полностью. Что должен делать сторонний скрипт? Тогда можно попробовать всё на Python переписать, без костылей...</p><div class="quotebox"><cite>valet пишет:</cite><blockquote><p>Просто был приведен пример сначала одного питон-скрипта - ошибка, потом другого вроде как с иправлением - тоже не работает</p></blockquote></div><p>Я первый вариант и исправил - <a href="http://linuxforum.ru/viewtopic.php?pid=324472#p324472">Самый быстрый способ выборки случайного файла из директории</a></p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-01T16:21:07Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324753#p324753</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324744#p324744" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>пользуйся башем или изучай питон...</p></blockquote></div><p> да я и пользуюсь вообще-то <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /><br />Просто был приведен пример сначала одного питон-скрипта - ошибка, потом другого вроде как с иправлением - тоже не работает <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /><br />У меня видать питон какой-то неправильный раз вы говорите УМВР <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-02-01T16:09:53Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324744#p324744</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324683#p324683" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>valet пишет:</cite><blockquote><p>Да не работают, ребята, ваши варианты. Как я понимаю вот эта переменная %s не подставляется:</p></blockquote></div><p>УМВР. <br />пользуйся башем или изучай питон...</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2013-02-01T12:00:31Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324683#p324683</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324661#p324661" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>xxblx пишет:</cite><blockquote><p>Вот интересно стало, может лучше call делать.</p></blockquote></div><p>Бизли:<br /></p><div class="quotebox"><blockquote><p><strong>call(args, **parms)</strong><br />Эта функция выполняет те же действия, что и функция Popen(), за исклю-<br />чением того, что она просто выполняет команду и возвращает код заверше-<br />ния (то есть она не возвращает объект класса Popen). Эту функцию удобно<br />использовать, когда требуется всего лишь выполнить команду и нет необ-<br />ходимости получать от нее вывод или управлять ею каким-либо способом.<br />Аргументы имеют тот же смысл, что и в функции Popen().</p></blockquote></div><br /><div class="quotebox"><cite>valet пишет:</cite><blockquote><p>Вы хоть сами проверяете что пишите?</p></blockquote></div><p>Неа:)</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-02-01T07:57:52Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324661#p324661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Самый быстрый способ выборки случайного файла из директории]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=324627#p324627" />
			<content type="html"><![CDATA[<p>Да не работают, ребята, ваши варианты. Как я понимаю вот эта переменная %s не подставляется:<br /></p><div class="codebox"><pre><code>/bin/sed: can&#039;t read %s: No such file or directory</code></pre></div><p>Вы хоть сами проверяете что пишите? <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[valet]]></name>
				<uri>https://linuxforum.ru/profile.php?id=13273</uri>
			</author>
			<updated>2013-01-31T23:31:20Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=324627#p324627</id>
		</entry>
</feed>
