如何在Python脚本内调用robocopy来批量复制多个文件夹?

2024-07-08 17:24:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在网络驱动器之间移动多个大文件夹(>;10 Gb,>;100个子文件夹,>;2000个文件)。我曾尝试在python中使用shutil.copytree命令,该命令工作正常,只是由于不同的原因未能复制一小部分(文件的<;1%)。

我相信robocopy是最好的选择,因为我可以创建一个记录传输过程的日志文件。但是,由于我需要复制1000个文件夹,手动操作是不可能的。

因此,我的问题本质上是如何在python脚本中调用robocopy(即命令行),以确保日志文件是在外部文件中编写的。

我在Windows 7环境下工作,由于组织限制,Linux/Unix是不可能的。如果有人有任何其他建议批量复制这么多文件夹具有很大的灵活性,他们是受欢迎的。


Tags: 文件命令ltgt网络文件夹过程记录
3条回答

Subproccess允许您进行系统调用。这将允许您从命令行调用robocopy。

from subprocess import call
call(["robocopy", "basefolder newfolder /S /LOG:mylogfile"])

使用os.exec系列函数之一启动任何外部程序:

可能你想要os.execlp(file, arg0, arg1, ...)

就像halfs13所说的使用子流程,但是您可能需要这样格式化它

from subprocess import call call(["robocopy",'fromdir', 'todir',"/S"]) 否则它可能会把源代码解读为

相关问题 更多 >

    热门问题