如何在运行时传递整数和字符类型

时间:2018-02-05 20:29:39

标签: python python-3.x python-2.7 python-requests

我在Python中使用子进程并在运行时传递ec2实例id。虽然给出了实例id,但它是一个字符串并抛出错误,说实例id无效。请不要建议boto3包,因为我的公司限制使用它。我的问题是如何在运行时发送字符+整数+特殊字符。

PGM:

#!/bin/python
import subprocess
import sys
def describe_one(instanceid):
    subprocess.call(["aws", "ec2", "describe-instances", "--instance-ids", '"instanceid"'])

if __name__ == "__main__":
    instanceid=sys.argv[1]
    describe_one(instanceid)

输出

# ./sample.py i-061e41edcc2afc01
  

调用DescribeInstances操作时发生错误(InvalidInstanceID.Malformed):无效的ID:"" instanceid""

2 个答案:

答案 0 :(得分:1)

您打算传递文字字符串attachMediaStream = function (a, b) { console.log("Attaching media stream"); a.mozSrcObject = b; a.play(); return a }; reattachMediaStream = function (b, a) { console.log("Reattaching media stream"); b.mozSrcObject = a.mozSrcObject; b.play() } 吗? 当然你的意思是使用它的价值?

"instanceid"

subprocess.call(["aws", "ec2", "describe-instances", "--instance-ids", f'"{instanceid}"'])

如果不使用Python3.6

答案 1 :(得分:0)

这与“传递整数或字符类型”无关,无论这意味着什么。

您传递的是文字值"instanceid",并带有引号,而不是您脚本的instanceid参数值。你确实做过两组报价。

(实际上,你应该对你的老板使用boto3采取这种愚蠢的“限制”。如果没有正确的工具,就不能指望你做你的杜松子酒。)