无法从Python调用外部命令

时间:2017-01-10 22:50:58

标签: python eclipse amazon-web-services pydev

我正在尝试使用Eclipse(Pydev)中的Python将一些压缩文件目录从AWS桶复制到Windows机器。

当我使用以下命令时:

result = subprocess.Popen([r'aws s3 cp s3://myBucket/' + str(someInt) + '/ ' + output_dir + ' --recursive'], stdout=subprocess.PIPE)

我收到错误:

FileNotFoundError: [WinError 2] The system cannot find the file specified

但是,如果我将evaluate参数粘贴到Windows命令行中,它会成功复制文件。我也能够成功使用R执行AWS命令:

result <- shell(paste0("aws ", "s3 ", "cp ", "s3://myBucket/", someInt, "/ ", output_dir, " --recursive"))

所以,我知道文件存在,我可以用其他方法复制它们。我必须在Python命令中遗漏一些简单的语法错误。

更新:这是工作解决方案:

result = subprocess.Popen(['aws', 's3', 'cp', r's3://myBucket' + str(someInt) + '/', output_dir, '--recursive'], stdout=subprocess.PIPE)

0 个答案:

没有答案