Форум сайта python.su
Понадобилось мне тут копировать один файл 99999 раз (не спрашивайте, шиза.)
Файл весит всего 643 байта…
Без проблем написал скрипт:
import shutil
picture = 'C:\\Users\\Boltayka\\Pictures\\99999\\1.jpg'
path = 'C:\\Users\\Boltayka\\Pictures\\99999\\'
filetype = '.jpg'
for i in range(2, 99999, 1):
shutil.copy(picture, path+str(i)+filetype)
print str(i)+'.jpg'
Отредактировано (Март 10, 2010 17:40:17)
Офлайн
Купить более быстрый винт.
В Линуксе использовать несколько потоков - из за кеширования скорость будет огромной.
Офлайн
Все действительно упирается в скорость работы винта и FS.
Хотя оптимизировать чуть чуть можно. Зачем каждый раз читать один и тот же файл? Прочитайте один раз в память и писать потом. Обращений К диску меньше будет.
Отредактировано (Март 10, 2010 17:58:53)
Офлайн
А почему на винде нельзя использовать несколько потоков? Допустим, если все приложения отключить, и даже отойти от компа?…)
p.s. Можно ли как-то запускать несколько потоков в 1м файле? (не запуская 10 интерпретаторов)
Прочитайте один раз в память и писать потом.Можно пример? :)
Отредактировано (Март 10, 2010 17:59:11)
Офлайн
boltaykaсмотреть модуль thread
. Можно ли как-то запускать несколько потоков в 1м файле?
boltaykaэто ж элементарно….
Можно пример? :)
pic=open(FILENAME,'rb').read()
for x in что_там_у_вам:
f=open(FILENAME_OUT,'wb')
f.write(pic)
f.close()
Отредактировано (Март 10, 2010 18:02:20)
Офлайн
О. Спасибо!
Действительно немного скорость увеличилась (пока-что в один поток запустил)…
Потом попробую с потоками разобраться…
Офлайн
да и вообще такое количество файлов в одной папке это ужасный тормоз.
P.S. Пользуясь случаем, никто случайно не видел FUSE под windows с биндингом для python?
Офлайн
igor.kaistFUSE под маздай? А зачем?
P.S. Пользуясь случаем, никто случайно не видел FUSE под windows с биндингом для python?
Офлайн
ZZZреализовать пару интересных задумок. Под linux, например хочу сделать одну штучку для нашей сетки: в расшаренной папке создаешь папку с названием исполнителя, а там чудестным образом появляется музыка :)
FUSE под маздай? А зачем?
Офлайн
boltaykaМожно, но в винде такого выигрыша не получится - она кеш использует не так активно.
А почему на винде нельзя использовать несколько потоков? Допустим, если все приложения отключить, и даже отойти от компа?…)
igor.kaistБыло бы хорошо :(
FUSE под windows с биндингом для python?
Офлайн