Переместить папку из А в В
У меня есть папка с некоторыми файлами, автоматически создаваемыми один раз в день. Допустим, эта папка называется "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
в этом случае.