python - 如何将 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 的模块为您提供了一种独立于操作系统的方式来复制目录树时,没有充分的理由为此使用任何操作系统提供的工具。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))
推荐阅读
- python - 从 Matplotlib 图例中排除 Cartopy 元素
- python - 我不工作评论和表格不显示
- html - 无法使图像适合导航栏
- sql - 是否可以查看两个连续的行并使用 SQL 确定两者之间的时间差?
- python - 如何在 python/pip 中使用带星号的版本控制安装开发版本?
- reactivesearch - ReactiveSearch:如何在多个过滤器更改之前延迟/暂停响应式查询?
- python - df.groupby('A').agg('min') 如何转换为特征工具?
- java - NoClassDefFoundError 通过切换到另一个项目
- json - 无法使用 HandyJSON 解析 json(字符串)。错误(类型“字符串”不符合协议“HandyJSON”)
- postgresql-10 - 如何避免 PostgreSQL v 10 中的主键列重复?