首页 > 解决方案 > 如何将 subprocess.call(["cp", "-r", ...]) 转换为在 Windows 10 上工作?

问题描述

我的目标是使用另一位研究人员给我的代码。我在 Windows 10 上使用 Python 3.7。我假设代码是为 Python 2 和 Linux 操作系统编写的。

我需要将一些旧的 Python 2 命令转换为我的新 3.7 版本。我无法使用其他 Python 版本,也无法更改我的操作系统。我已经开始工作了,有些翻译很明显,但是我需要你的帮助。

旧命令是:

subprocess.call(["cp", "-r", WD + "Albedo", WD + "CIE_data",
                 WD + "Gases", WD + "Solar", ProcessDir[ProcessNumber]])

WD并且ProcessDir[ProcessNumber]都是文件路径。

我需要一个用于 Window 10 上的 Python 3.7 的新命令。我认为这"cp -r"相当于 Windows 命令xcopy,但我的问题如下:WD + "Albedo"+ "CIE_data"等。如何xcopy在一个命令中使用多个文件subprocess.call

标签: python

解决方案


坦率地说,当 Python 的模块为您提供了一种独立于操作系统的方式来复制目录树时,没有充分的理由为此使用任何操作系统提供的工具。shutil因此:

import shutil, os.path

for subdir in ['Albedo' 'CIE_data' 'Gases', 'Solar']:
  shutil.copytree(os.path.join(WD, subdir),
                  os.path.join(ProcessDir[ProcessNumber], subdir))

推荐阅读