Переместить папку из А в В

У меня есть папка с некоторыми файлами, автоматически создаваемыми один раз в день. Допустим, эта папка называется "bla20150309" (поэтому отметка времени добавляется автоматически).

Теперь я хочу переместить эту папку вкл. все это содержимое где-то еще. Мой код до сих пор:

import time
import datetime
import shutil

ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%Y%m%d')

def copyDirectory(src, dest):
    try:
        shutil.copytree(src, dest)
    # Directories are the same
    except shutil.Error as e:
        print('Directory not copied. Error: %s' % e)
    # Any error saying that the directory doesn't exist
    except OSError as e:
        print('Directory not copied. Error: %s' % e)

copyDirectory("D:/bla%s","E:/hello%s") % (st, st)

Поэтому я хочу переместить папку "bla20150309" на диске D в "hello20150309" на диске E (где-то здесь я уже читал, что вам нужен shutil вместо os.move, если вы выполняете этот тип операции между различными жесткими дисками. Новая папка hello20150309 на E еще не существует и должен быть создан с функцией копирования.

Ошибка, которую я получаю до сих пор при выполнении моего кода:

TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'

Есть идеи, как это исправить?

1 ответ

Решение

Вам необходимо отформатировать имена каталогов, прежде чем передавать их в вашу функцию. Что у тебя сейчас есть:

copyDirectory("D:/bla%s","E:/hello%s") % (st, st)

не выйдет на работу, хочешь

copyDirectory("D:/bla%s" % st, "E:/hello%s" % st)

В противном случае вы пытаетесь использовать % оператор на copyDirectory() Возвращаемое значение функции None в этом случае.

Другие вопросы по тегам