Я делаю небольшую программу на Python для копирования некоторых файлов. Мои имена файлов находятся в списке "selectedList".
Пользователь выбрал исходный каталог "self.DirFilename" и целевой каталог "self.DirDest".
Я использую cp вместо Shutil, потому что я читал, что Shutil работает медленно.
Вот мой код:
for i in selectedList:
src_dir = self.DirFilename + "/" + str(i) + ".mov"
dst_dir = self.DirDest
r = os.system('cp -fr %s %s' % (src_dir, dst_dir))
if r != 0:
print 'An error occurred!'**
Я хотел бы, чтобы копия искала исходный каталог для данного имени файла, а затем воссоздавала структуру папок в месте назначения, а также копировала файл.
Любые предложения будут полезны (как и любые очевидные ошибки, которые я делаю) - это моя первая программа на Python, и я почти готов!
Спасибо, Гэвин.
r = subprocess.call(('cp', '-fr', src_dir, dst_dir + '/'))
- person pts   schedule 30.04.2013shutil
медленно копирует, потому что размер его буфера составляет всего 16 КБ. Согласно нескольким источникам, больший размер буфера может иметь большое значение (например, blogs.blumetech.com/blumetechs-tech-blog/2011/05/). Для рекурсивных копий изменить размер буфераshutil
непросто. См. ссылку выше для альтернативной реализации. Вероятно, огромная разница связана с различными шаблонами поиска на диске. - person pts   schedule 30.04.2013print 'An error occurred!'
вы можете вызвать исключение и, таким образом, остановить дальнейшую обработку. - person pts   schedule 30.04.2013