Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用子流程模块在python中运行aws cli命令_Python_Amazon S3_Aws Sdk_Boto3_Aws Cli - Fatal编程技术网

如何使用子流程模块在python中运行aws cli命令

如何使用子流程模块在python中运行aws cli命令,python,amazon-s3,aws-sdk,boto3,aws-cli,Python,Amazon S3,Aws Sdk,Boto3,Aws Cli,我试图从python运行一个非常基本的AWS CLI命令,而不是使用boto3 所以我从堆栈溢出中找到了一个答案,我试过了,但没有做得更好,我不想使用bot3,下面是我试过的代码 import subprocess cmd='aws s3 ls' push=subprocess.Popen(cmd, shell=True, stdout = subprocess.PIPE) print push.returncode 如果我将这些命令运行到bash脚本中,它将非常好地工作。但是我有一个限制,

我试图从python运行一个非常基本的AWS CLI命令,而不是使用boto3

所以我从堆栈溢出中找到了一个答案,我试过了,但没有做得更好,我不想使用bot3,下面是我试过的代码

import subprocess

cmd='aws s3 ls'
push=subprocess.Popen(cmd, shell=True, stdout = subprocess.PIPE)
print push.returncode
如果我将这些命令运行到bash脚本中,它将非常好地工作。但是我有一个限制,那就是它只能使用python脚本来完成。

作为状态的文档,
。returncode
存储子进程返回代码。运行代码后,我看到以下输出:

ania@blabla:~$ python3 test.py 
None
ania@blabla:~$ 
[Errno 32] Broken pipe
再次检查上述单据:

None
值表示进程尚未终止

因此,让我们修改代码以等待子进程结束(我使用的是Python 3):

现在,在输出中,我得到退出状态0:

ania@blabla:~$ python3 test.py 
0

这是关于
子流程
模块问题的建议,但困扰我的是为什么您不想使用
boto3
模块,它是专门为从Python向AWS发送API调用而编写的。如果可能的话,我建议您不要使用
子流程
发送这些请求并切换到
boto3

您可以尝试以下命令

import subprocess

push=subprocess.call(['aws', 's3', 'ls', '--recursive', '--human-readable', '--summarize'])


希望为您提供帮助。

您介意我问您为什么希望从Python运行AWS CLI吗?实际上,我正在尝试运行一些东西,我知道如何使用AWS CLI命令,但不知道如何使用Python,因此我只想学习在pythons中运行CLI命令的任何方法,正因为如此,我将AWS s3的简单命令放在一边,我希望当时我的回答是有帮助的。如果它解决了您的问题,您可以将其标记为已接受。
import subprocess

push=subprocess.call(['aws', 's3', 'ls', '--recursive', '--human-readable', '--summarize'])
import subprocess

push=subprocess.run(['aws', 's3', 'ls', '--recursive', '--human-readable', '--summarize'])