2016-04-20 16 views
2

こんにちは私は以下の形式のdata.txtファイルを読んでいます。Pythonファイルを読み込んで印刷する

私はしかし、私は唯一の

(「ET1」、「をEt2」を印刷することができる午前、データを抽出し、私は以下のコードを使用しています

Et1, Arista2, Ethernet1 
Et2, Arista2, Ethernet2 
Ma1, Arista2, Management1 

としてそれを印刷する必要が

Last table change time : 6:55:12 ago 
    Number of table inserts : 3 
    Number of table deletes : 0 
    Number of table drops : 0 
    Number of table age-outs : 0 

    Port  Neighbor Device ID    Neighbor Port ID   TTL 
    Et1  Arista2      Ethernet1     120 
    Et2  Arista2      Ethernet2     120 
    Ma1  Arista2      Management1    120 

、 'Ma1')

with open('data.txt') as f: 
     for x in xrange(6): 
      next(f) 
     for line in f: 
      print zip(*[line.split() for line in f])[0] 
     f.close() 
+1

なぜあなたはその 'zip'のことをやっていますか?転置は必要ありません。 – user2357112

答えて

1

少しの正規表現の助けを借りて、望ましいコンテンツを抽出することができます。

は、コードスニペット以下試してください:あなたはNumberを知っているので、それが動作するはず

with open('tesxt.txt') as f: 
    for line in f: 
     if all(i not in line for i in ['Number', 'Last']) and line !='\n': 
      print(line.strip().split()[:3]) 

:ファイルの内容と形式によって

import re 

with open('input.txt','r') as fp: 
    for x in xrange(7): 
     next(fp) 

    rx = "\w+" 
    for line in fp: 
     data = re.findall(u"\w+", line, re.DOTALL) 
     if data: 
      print(', '.join(data[0:-1])) 

を、これを試してみてください

Et1, Arista2, Ethernet1 
Et2, Arista2, Ethernet2 
Ma1, Arista2, Management1 
+0

は完璧に、ありがとうございます。上記の場合、私はそれを7行目から始めると述べましたが、代わりに の隣の行から開始するように変更することができます。ポート隣接デバイスID隣接ポートID TTL。 それはできますか? – charan

+0

それはあなたのものです。あなたがしたいことを何でもしてください。実際に私はコードで遊ぶことをお勧めします。これは学ぶための最善の方法です。 – Saleem

+0

こんにちはSaleem、 私は同じタイプのパターンで同じことを試みています。 – charan

1

を印刷しますLastは印刷する必要がある行にありません。正規表現を書く必要はありません

関連する問題