Найти - Пользователи
Полная версия: ускорение копирования файлов.
Начало » Python для новичков » ускорение копирования файлов.
1 2
boltayka
Понадобилось мне тут копировать один файл 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'
Но теперь озадачился вопросом, можно ли как-то ускорить процесс? :D Обращаюсь в основном к экспертам, т.к. им оптимизация лучше известна…
knkd
Купить более быстрый винт.
В Линуксе использовать несколько потоков - из за кеширования скорость будет огромной.
igor.kaist
Все действительно упирается в скорость работы винта и FS.
Хотя оптимизировать чуть чуть можно. Зачем каждый раз читать один и тот же файл? Прочитайте один раз в память и писать потом. Обращений К диску меньше будет.
boltayka
А почему на винде нельзя использовать несколько потоков? Допустим, если все приложения отключить, и даже отойти от компа?…)


p.s. Можно ли как-то запускать несколько потоков в 1м файле? (не запуская 10 интерпретаторов)


Прочитайте один раз в память и писать потом.
Можно пример? :)
igor.kaist
boltayka
. Можно ли как-то запускать несколько потоков в 1м файле?
смотреть модуль thread
boltayka
Можно пример? :)
это ж элементарно….
pic=open(FILENAME,'rb').read()
for x in что_там_у_вам:
f=open(FILENAME_OUT,'wb')
f.write(pic)
f.close()
boltayka
О. Спасибо!
Действительно немного скорость увеличилась (пока-что в один поток запустил)…
Потом попробую с потоками разобраться…
igor.kaist
да и вообще такое количество файлов в одной папке это ужасный тормоз.
P.S. Пользуясь случаем, никто случайно не видел FUSE под windows с биндингом для python?
ZZZ
igor.kaist
P.S. Пользуясь случаем, никто случайно не видел FUSE под windows с биндингом для python?
FUSE под маздай? А зачем?
igor.kaist
ZZZ
FUSE под маздай? А зачем?
реализовать пару интересных задумок. Под linux, например хочу сделать одну штучку для нашей сетки: в расшаренной папке создаешь папку с названием исполнителя, а там чудестным образом появляется музыка :)
knkd
boltayka
А почему на винде нельзя использовать несколько потоков? Допустим, если все приложения отключить, и даже отойти от компа?…)
Можно, но в винде такого выигрыша не получится - она кеш использует не так активно.

igor.kaist
FUSE под windows с биндингом для python?
Было бы хорошо :(
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB