Прошло некоторое время с тех пор, как я написал функции для циклов и записи в файлы, настолько обнаженные с моим невежеством.Функция добавляет строки в .csv
Эта функция получает IP-адрес для чтения из текстового файла; пингует IP, ищет полученные пакеты, а затем добавляет его в .csv
Мой вопрос: есть ли лучший или простой способ написать это?
def pingS (IPadd4):
fTmp = "tmp"
os.system ("ping " + IPadd4 + "-n 500 > tmp")
sName = siteNF #sys.argv[1]
scrap = open(fTmp,"r")
nF = file(sName,"a") # appends
nF.write(IPadd4 + ",")
for line in scrap:
if line.startswith(" Packets"):
arrT = line.split(" ")
nF.write(arrT[10]+" \n")
scrap.close()
nF.close()
Примечание: Если вам нужен полный сценарий, я могу поставить, что хорошо.
Учитывая, что он пингует IP-адрес 500 раз, я не уверен, что быстрее IO значительно увеличит общую скорость. – MDT
Добавление более дорогое, чем использование буфера, из-за каждого добавления, вызывающего выделение новой памяти. Если список становится достаточно большим, у вас могут быть интересные вещи. Добавление одной строки в файл размером 300 МБ приведет к копированию старого объекта с вашей новой строкой в конце. (300 + 300 + размер линии). Разница в производительности - это не только скорость (по порядку величины), но и потребление памяти. – gmoney