将文件夹从A移动到B.

时间:2015-03-09 10:13:21

标签: python python-2.7 shutil

我有一个文件夹,里面有一些文件,每天自动创建一次。让我们说该文件夹名为" 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'

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要在将目录名称​​传递给您的函数之前格式化您的目录名称​​。你现在拥有什么:

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

不会起作用,你想要:

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

否则,您尝试在%函数返回值上使用copyDirectory()运算符,在这种情况下恰好是None