私は Python 3 を使用しています。2 つのプログラムを作成しました。csv ファイルをループして Cisco スイッチの IP アドレスを取得し、ログインしてコマンドを実行し、それぞれの結果を個々のテキスト ファイルに出力します。そのため、スイッチごとに 1 つずつ、多数のテキスト ファイルが作成されます。2 番目のプログラムは、xlwt を使用して、各テキスト ファイルの情報を Excel の独自のシートに書き込みます。
主なアイデアは、ポートが稼働中または稼働していないことを示すレポートを作成する必要があるということです。これらを Excel にインポートしたら、必要なデータを抽出する数式を記述できます。しかし、これを Excel にインポートすると、現在のところ、一部のセルを手動で削除する必要があります。これは、名前列のいくつかの単語の間にスペースがあるためです (Excel にインポートしています)。スペース区切り)。文字列とリストのメソッド (分割、結合、スライスなど) を使用していくつかのことを試みましたが、必要なものを正確に取得できません。また、Name 列は、どのような種類の一貫した規則でも標準化されていません。名前は実際には非常に長いかもしれませんが、特定の文字数に切り捨てられることに気付きました。
理想的には、最初の 4 行 (最上部に空白行があります) と最後の行を最初に削除してから、ポートとステータスの間のすべてを削除します (ヘッダーを含む列を完全に削除します)。
これは、スイッチからデータを取得した後のファイルの外観です。
sw1#期間の長さ 0 sw1#show インターフェイス ステータス ポート名 ステータス VLAN デュプレックス スピード タイプ Gi0/1 トランクからスイッチ (a 接続 1 a-full a-100 10/100/1000BaseTX Gi0/2 ネットワーク拡張 pe 接続済み 1 a-full a-1000 10/100/1000BaseTX Gi0/3 接続 1 a-full a-1000 10/100/1000BaseTX Gi0/4 接続 1 a-full a-100 10/100/1000BaseTX Gi0/5 notconnect 1 auto auto Not Present Gi0/6 notconnect 1 auto auto Not Present Gi0/7 notconnect 1 auto auto Not Present Gi0/8 notconnect 1 auto auto Not Present Gi0/9 notconnect 1 auto auto Not Present Gi0/10 接続 1 a-full a-100 10/100/1000BaseTX Gi0/11 notconnect 1 auto auto Not Present Gi0/12 接続 1 a-full a-100 10/100/1000BaseTX Gi0/13 無効 1 自動 自動 存在しない Gi0/14 無効 1 自動 自動 存在しない Gi0/15 無効 1 自動 自動 存在しない Gi0/16 無効 1 自動 自動 存在しない sw1#ログアウト
最終結果は以下のとおりです。これにより、Excel にインポートするときに、行/列の構造が損なわれないようにする必要があります。すべての列情報がスペースで区切られていることに注意してください。固定幅としてインポートするか、連続したスペースをチェックされたものとして扱うスペースで区切ってインポートすると、かなりうまくいくようです。
ポート ステータス VLAN デュプレックス スピード タイプ Gi0/1 接続 1 a-full a-100 10/100/1000BaseTX Gi0/2 接続 1 a-full a-1000 10/100/1000BaseTX Gi0/3 接続 1 a-full a-1000 10/100/1000BaseTX Gi0/4 接続 1 a-full a-100 10/100/1000BaseTX Gi0/5 notconnect 1 auto auto Not Present Gi0/6 notconnect 1 auto auto Not Present Gi0/7 notconnect 1 auto auto Not Present Gi0/8 notconnect 1 auto auto Not Present Gi0/9 notconnect 1 auto auto Not Present Gi0/10 接続 1 a-full a-100 10/100/1000BaseTX Gi0/11 notconnect 1 auto auto Not Present Gi0/12 接続 1 a-full a-100 10/100/1000BaseTX Gi0/13 無効 1 自動 自動 存在しない Gi0/14 無効 1 自動 自動 存在しない Gi0/15 無効 1 自動 自動 存在しない Gi0/16 無効 1 自動 自動 存在しない
任意のポインタをいただければ幸いです。正規表現が適切であると考えていますが、それを構築する方法について少し支援が必要です。これがあいまいではないことを願っています。
以前の更新を削除し、新しいスレッドに移動しました