Уведомления

Группа в Telegram: @pythonsu

#1 Июль 14, 2018 17:49:28

Karalov86
Зарегистрирован: 2016-06-17
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа долго переносит файлы

Вот код программы которая переносит файлы с расширением DCM и базу данных с ноутбука на флешку.
При запуске программы она удаляет с флешки все снимки кроме снимка с самым большим номером. После чего снимки переносятся с ноута на флешку начиная от самого старшего номера к младшему, как только номер снимка с ноута совпадает с номером старшего снимка на флешке, перенос снимков с ноута на флешку останавливается. Вопрос в - почему то снимки переносятся со скоростью 1 снимок в 10 секунд. Размер одного снимка 18 мегабайт. При переносе ручным копированием и вставкой снимок переносится всего за 2-3 сек. В чём может быть причина? И как можно исправить ситуацию?


 import os, re, shutil, datetime
pathNout = "C:\Comp nout"
pathFlash = "E:\Comp in flash"
pathflashBase = "E:\Comp in flash\Base flash"
listDICOMfilesNout = os.listdir("C:\Comp nout")
listDICOMfilesFlash = os.listdir("E:\Comp in flash")
listDICOMfilesFlashBase = os.listdir("E:\Comp in flash\Base flash")
firstfile = ""
# 1. Опрееделние файла снимка на флешке с самым большим номером на флешке
selection = re.compile(r"[а-яА-Яa-zA-Z0-9()_]*\.[DdCcMm]+")
picsflash = selection.findall(str(listDICOMfilesFlash))
try:
    firstfile = max(picsflash)
    print("старший файл", firstfile)
except:
    pass
# удаление всех оставшихся файлов снимков на флешке кроме файла с послед номер
try:
    picsflash.remove(firstfile)
    print(picsflash)
    forDeloldFile = [os.path.join(pathFlash, file) for file in picsflash]
    for file in forDeloldFile:
        os.unlink(file)
except:
    pass
# Поиск подходящих файлов снимков на ноуте
selection = re.compile(r"[а-яА-Яa-zA-Z0-9()_]*\.[DdCcMm]+")
pics = selection.findall(str(listDICOMfilesNout))
#Создание пути к каждому подходящему файлу снимка на ноуте
suitablefiles = [os.path.join(pathNout, file) for file in pics]
#2 Перенос файлов снимков с ноута на комп флешку, остановка на сопадающем файле
try:
    for i in range(1,5000):    
        shutil.copy(suitablefiles[-i], pathFlash)
        if pics[-i] == firstfile:
            break
except:
    pass
  
#3. Перенос файла базы на флешку
selection = re.compile(r"[а-яА-Яa-zA-Z0-9()_]*\.[fdb]+")
base = selection.findall(str(listDICOMfilesNout))
basePath = [os.path.join(pathNout, file) for file in base]
for file in basePath:
    shutil.copy(file, pathflashBase)
#4. Удаление последнего из файла предыдущей серии
try:
    findelfile = os.path.join(pathFlash, firstfile)
    os.unlink(findelfile)
except:
    pass

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version