如何使用python代码中的变量命令运行linux cp -r

时间:2019-04-30 18:43:42

标签: linux python-3.x shell

我想从python代码运行cp -r $ src $ dest。 当我尝试将src和dest作为变量而不是字符串传递时,就会出现此问题。

将目录和所有带有文件的子文件夹复制到新目录的最简单方法是什么?

我尝试过:

src='src/dir'
dest='dest/dir/
import os
myCmd = 'cp -R '+src+' '+dest
os.system(myCmd)

我也尝试使用子过程:

subprocess.run(myCmd, shell=True)

或:

subprocess.run('cp -r "$s" "$d"', shell=True, env={'s': src, 'd':dest} )

仅当我将src和dest指定为字符串时,它才起作用:

subprocess.run('cp -r src/dir dest/dir', shell=True )

1 个答案:

答案 0 :(得分:1)

使用shutil.copytree()而不是进行系统级调用:

import shutil
source_folder = '/somewhere/some_folder'
dest_folder = '/elsewhere/some_folder'
shutil.copytree(source_folder, dest_folder)

这将适用于所有平台