-2

基本的にルーターを構成するスクリプトを作成しています。これは基本的にWebページになり、Pythonに引数を渡します。現時点では、ファイルに書き込んでexscriptで遊んで、ssh経由で書き込んでいます

たとえば、これは、Web ページから引数を受け取った後のトーン バージョンのスクリプトで、次のように実行されます。

python myscript.py 4 newfile.txt 

(4 と newfile は Web ページから受け取った変数です)

スクリプトは次のようになります

from sys import argv

script, vlanno, filename = argv
target = open(Filename, 'w')
vlanapply = (int vlan %r) %svino
target.write(vlanapply)

わかりましたので、これは機能しますが、問題は、番号 4 が vlan no を表す出力にあります

int vlan '4' として出力されます

次に、conn.execute を使用して exscript を使用してこれを cisco デバイスに適用しようとすると、無効なコマンド エラーが発生し、他の非変数コマンドは正常に動作しています。

問題は、コマンドが int vlan 4 ではなく int vlan '4' であることです。

どうすれば「 」を取り除くことができますか?

4

3 に答える 3

1

問題はステートメント内にあります:

vlanapply = (int vlan %r) %svino

は、表す%r実際のオブジェクト (この場合は文字列) を出力します。vino

上記の行を次のように置き換えます。

vlanapply = 'int vlan %s'  % vino

これは正しく動作するはずです。

Python の%rおよび%sディレクティブの適切な説明を提供するこの質問を参照してください

于 2013-08-17T18:34:40.057 に答える