2016-09-26 17 views
-2
ENV=raw_input("Enter Environment (QA/Prod):") 
print(ENV) 
os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values=ENV" "Name=instance-state-code, Values=16" > FilteredOP') 

こんにちは、 私はPythonにかなり戸惑います。ここで、 os.systemコマンドでENV変数を呼び出すことができません。構文に間違いはありませんか?Pythonのos.systemメソッド内で変数を呼び出せません。

答えて

1

ENVの値は、文字列のように魔法のように置換されません。

は、次の点を考慮しかし

os.system('...Values=.{}...'.format(ENV)) 

>>> ENV = 'debug' 
>>> 
>>> 'Value=ENV' 
'Value=ENV' 
>>> 
>>> 'Value={}'.format(ENV) 
'Value=debug' 

をだからではなく、の文字列の一部としてENVをハードコーディングし、あなたはをフォーマット文字列を使用してENVの値を挿入したいです、subprocess.check_outputはクリーナーの代替品ですチェックアウトにすることができます。

0

フォーマット出力については、ENVを文字列 "ENV"と見なしてください。

ENV=raw_input("Enter Environment (QA/Prod):") 
print(ENV) 
os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values={}" "Name=instance-state-code, Values=16" > FilteredOP'.format(ENV)) 
0

この

ENV=raw_input("Enter Environment (QA/Prod):") 
    print(ENV) 
    os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values=%s" "Name=instance-state-code, Values=16" > FilteredOP'%(ENV)) 
をお試しください
関連する問題