Форум сайта python.su
Вот код программы которая переносит файлы с расширением 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
Офлайн