簡體   English   中英

將特殊字符附加到python中的值

[英]Append special character to a value in python

我正在嘗試刪除那些終止了環境(實例)的所有堆棧。 在將stack_name傳遞給delete_stack時,將引發錯誤。 我試圖將特殊字符(例如“”)添加到stack_name的值中,但是沒有運氣。 有人可以幫我解決問題。 提前致謝!

#!/usr/bin/env python

import boto
import boto.ec2
import boto.cloudformation
import re
from datetime import datetime, timedelta

utclast = datetime.utcnow() - timedelta(2)

conn = boto.cloudformation.connect_to_region('us-west-1',aws_access_key_id = '<access_key>',aws_secret_access_key = '<secret_key>')
conn_ec2 = boto.ec2.connect_to_region('us-west-1',aws_access_key_id = '<access_key>',aws_secret_access_key = '<secret_key>')

stacks = conn.list_stacks()
for stackSumm in stacks:
    pattern = re.compile("Testupload-env([a-zA-Z0-9]+)")
    match = pattern.match(stackSumm.stack_name)
    if stackSumm.stack_status in "CREATE_COMPLETE" and match and stackSumm.stack_name in match.string:
        m = re.split(r'Testupload-', stackSumm.stack_name)
        instance = conn_ec2.get_all_instances(filters={"tag:Name": m[1]})
        if not instance:

            try:
                    print "Trying to delete stack: %s" % stackSumm.stack_name
                    conn.delete_stack(stackSumm.stack_name)

            except boto.exception.BotoServerError, e:
                    print e.error_message

錯誤:

File "delete_stack.py", line 7, in <module>
    conn.delete_stack(Testupload-envmeraleb8b01739116b0f36d17a2b5445b949f592bb625-6293)
NameError: name 'Testupload' is not defined

您發布的代碼均未產生錯誤,但NameError表示您未提供有效的堆棧名稱

delete_stack(stack_name_or_id)刪除指定的堆棧。 調用成功完成后,將開始刪除堆棧。 如果刪除已成功完成,則已刪除的堆棧不會顯示在DescribeStacks API中。

參數:stack_name_or_id(字符串)–與堆棧關聯的名稱或唯一標識符。

名稱/標識應為字符串,python中的字符串必須用單引號或雙引號引起來

stack_name = "Testupload-envmeraleb8b01739116b0f36d17a2b5445b949f592bb625-6293"
conn.delete_stack(stack_name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM