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

use*_*760 1 python command-line copy robocopy windows-7

我试图在网络驱动器之间移动多个大文件夹(> 10 Gb,> 100个子文件夹,> 2000个文件).我已经尝试在python中使用shutil.copytree命令工作正常,但由于不同的原因它无法复制一小部分(<1%的文件).

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

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

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

Qui*_*ack 7

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

from subprocess import call
call(["robocopy", 'fromdir', 'todir', "/S"])
Run Code Online (Sandbox Code Playgroud)

否则它可能会将源代码视为一切


hal*_*s13 6

Subproccess允许您进行系统调用.这将允许您像在命令行中那样调用robocopy.

from subprocess import call
call(["robocopy", "basefolder newfolder /S /LOG:mylogfile"])
Run Code Online (Sandbox Code Playgroud)