我有一个文件夹,里面有一些文件,每天自动创建一次。让我们说该文件夹名为" 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,如果你在不同的硬盘驱动器之间进行这种操作.E上的新文件夹hello20150309还不存在,应该用复制功能创建。
执行我的代码时到目前为止的错误:
TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
知道如何解决这个问题吗?
答案 0 :(得分:2)
您需要在将目录名称传递给您的函数之前格式化您的目录名称。你现在拥有什么:
copyDirectory("D:/bla%s","E:/hello%s") % (st, st)
不会起作用,你想要:
copyDirectory("D:/bla%s" % st, "E:/hello%s" % st)
否则,您尝试在%
函数返回值上使用copyDirectory()
运算符,在这种情况下恰好是None
。