Пишу программу для обновления каталога, но на реальных больших (более 1Гб) каталогах код работает очень долго. Подскажите, пожалуйста, способы оптимизации
if os.path.isdir(src):
self.sync_directories(src, dst) # function from below
for root_dir, _, files in os.walk(src):
rel_path = os.path.relpath(root_dir, src)
dest_dir = os.path.join(dst, rel_path)
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
for file in files:
src_file = os.path.join(root_dir, file)
dest_file = os.path.join(dest_dir, file)
if file.startswith('.') or self.is_hidden(src_file):
continue
if not os.path.exists(dest_file):
try:
shutil.copy2(src_file, os.path.dirname(dest_dir))
except (IOError, OSError) as e:
return False
return True
else:
logging.error
return False
def sync_directories(self, src, dst):
try:
sync(src, dst, 'sync', purge=True) #purge True
except Exception as e:
print")
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Оптимизировать синхронизацию (обновление) больших каталогов в Python. ⇐ Python
Программы на Python
1732862044
Anonymous
Пишу программу для обновления каталога, но на реальных больших (более 1Гб) каталогах код работает очень долго. Подскажите, пожалуйста, способы оптимизации
if os.path.isdir(src):
self.sync_directories(src, dst) # function from below
for root_dir, _, files in os.walk(src):
rel_path = os.path.relpath(root_dir, src)
dest_dir = os.path.join(dst, rel_path)
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
for file in files:
src_file = os.path.join(root_dir, file)
dest_file = os.path.join(dest_dir, file)
if file.startswith('.') or self.is_hidden(src_file):
continue
if not os.path.exists(dest_file):
try:
shutil.copy2(src_file, os.path.dirname(dest_dir))
except (IOError, OSError) as e:
return False
return True
else:
logging.error
return False
def sync_directories(self, src, dst):
try:
sync(src, dst, 'sync', purge=True) #purge True
except Exception as e:
print")
Подробнее здесь: [url]https://stackoverflow.com/questions/79236041/optimize-synchronization-updating-of-large-directories-in-python[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия