В Python, как мне скопировать файлы в каталог и остановить, как только этот каталог достигнет определенного размера - PullRequest
3 голосов
/ 14 апреля 2011

Я все еще очень плохо знаком с Python, но я пытаюсь создать программу, которая, помимо прочего, скопирует содержимое каталога в набор каталогов, который поместится на диск (у меня есть его настройка следующие переменные, чтобы быть емкостью размера, который я хочу, и установите оператор ввода, чтобы сказать, какой из них применяется):

BluRayCap = 25018184499
DVDCap = 4617089843
CDCap = 681574400

Таким образом, в основном я хочу скопировать содержимое начального каталога в другой каталог и, при необходимости, создать другой каталог для размещения содержимого на дисках.

Я тут как раз забил контрольно-пропускной пункт. Спасибо!

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Вы можете использовать os.path.getsize , чтобы получить размер файла, и вы можете использовать os.walk для обхода дерева каталогов, что-то вроде следующего (Я позволю вам реализовать CreateOutputDirectory и CopyFileToDirectory):

current_destination = CreateOutputDirectory()
for root, folders, files in os.walk(input_directory):
   for file in files:
       file_size = os.path.getsize(file)
       if os.path.getsize(current_destination) + file_size > limit:
          current_destination = CreateOutputDirectory()
       CopyFileToDirectory(root, file, current_destination)

Кроме того, вы можете найти расширение Python Search для Chrome полезным для поиска этой документации.

0 голосов
/ 14 апреля 2011

Ответ Майкла Аарона Сафяна хороший.

Кроме того, вы можете использовать шутил модуль для CreateOutputDirectory и CopyFileToDirectory

...