2016-05-18 52 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