netmiko
を使用してコードを実行すると、Showコマンドがほとんど実行されず、変数名(ここではIP)のテキストファイルに結果が保存されます。 )。結果を変数と同じ名前のテキストファイルにダンプする
たとえば、IP 8.8.8.8を挿入した場合、結果は8.8.8.8という名前のテキストファイルに保存されます。何か案は?
netmiko
を使用してコードを実行すると、Showコマンドがほとんど実行されず、変数名(ここではIP)のテキストファイルに結果が保存されます。 )。結果を変数と同じ名前のテキストファイルにダンプする
たとえば、IP 8.8.8.8を挿入した場合、結果は8.8.8.8という名前のテキストファイルに保存されます。何か案は?
問題がprint
戻りNone
、そしてあなたがそのprint
コールの戻り値に等しいpre_r
を設定しているということです。
pre_r = print(connection.send_command(command))
は代わりに、データに等しいpre_r
を設定し、print
代わり:
for command in commands:
pre_r = connection.send_command(command)
print(pre_r)
with open(SwIp, 'wb') as f:
f.write(pre_r)
for
ループをwith
ステートメント内に移動することもできます。
with open(SwIp, 'wb') as f:
f.writelines([connection.send_command(cmd) for cmd in commands])
SwIp
変数(文字列として)IPアドレスが含まれているように見えるので、あなたは少しあなたがファイルをopen()
方法を変更することでそれを行うことができます。
with open(SwIp, 'wb') as f:
f.write(str(pre_r)+'\n')
注私は、ファイルに書き込まれたデータの末尾に改行を追加し、(with
が自動的にそれを行います)あなたのコード内の不要なf.close()
を削除しました。