2016-05-18 7 views
1

Ping_Python 以下は、ホストにpingを実行し、結果からCSVファイルを作成するコードです。pythonを使用してpingしてファイルに保存

import os 
for i in range (0,255): 
    for j in range(1,254): 
     hostname = "10.222.{0}.{1}".format(i,j) 
     response = os.system ("ping -n 1 " + hostname) 
     if response == 0: 
      fp = open("C:\\Users\\anudeepa\\Desktop\\hostname.csv", 'w') 
      fp.writelines(hostname + "host up\n") 

     else: 
      fp = open("C:\\Users\\anudeepa\\Desktop\\hostname.csv", 'w') 
      fp.write(hostname + "host dead\n") 

このコードは、私がホストにpingを実行することができますが、CSVに結果を書き込み中に、それは以前に書き込まれた結果が上書きされ、唯一の最後から二番目またはunltimate結果を書き込みます。

答えて

2

変更

fp = open("C:\\Users\\anudeepa\\Desktop\\hostname.csv", 'w')

の両方

からfp = open("C:\\Users\\anudeepa\\Desktop\\hostname.csv", 'a')

追加モードでファイルを開くためです。

あなたは、ファイルごとの繰り返しを開けないように、また、withを使用してコードを向上させることができます

import os 

with open("C:\\Users\\anudeepa\\Desktop\\hostname.csv", 'a') as fp: 
    for i in range (0,255): 
     for j in range(1,254): 
      hostname = "10.222.{0}.{1}".format(i,j) 
      response = os.system ("ping -n 1 " + hostname) 
      if response == 0: 
       fp.writelines(hostname + "host up\n") 
      else: 
       fp.write(hostname + "host dead\n") 

これは、スクリプトの終了時にファイルを閉じることの利点を持っています。

+0

こんにちはDeepspace、 この修正でコードを修正し、 "import os"の後に下の行を追加して、ファイルをグローバルに開きました。 ** fp = open(r "C:¥Users¥anudeepa¥Desktop¥Work¥Bala¥xyz.csv"、 "w")** ' – Anudeep

関連する問題