【问题标题】:How to pass a integer and character type at runtime如何在运行时传递整数和字符类型
【发布时间】:2018-02-05 20:29:39
【问题描述】:

我在 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):Invalid id: ""instanceid""

【问题讨论】:

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


    【解决方案1】:

    您是否打算传递文字字符串"instanceid"? 你确定要使用它的价值吗?

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

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

    如果不使用 Python3.6+

    【讨论】:

      【解决方案2】:

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

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

      (真的,你应该接受这个关于与你的老板一起使用 boto3 的愚蠢“限制”。如果没有正确的工具,你不能指望你做杜松子酒。)

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 2019-12-11
        • 1970-01-01
        • 1970-01-01
        • 2013-08-13
        • 1970-01-01
        相关资源
        最近更新 更多