Выполните NSLOOKUP, прочитав его из одного CSV и записав его в другой CSV в Python - PullRequest
0 голосов
/ 04 июня 2018

Я пытался выполнить NSLOOKUP и записать значения в файл CSV.

Мой file1.csv:

Hostname  
abc1  
def2  
fgh3   
.  
.  
.  
and so on  

Я хочу выполнить nslookup на этих именах хостов и записатьПолное доменное имя для file2.csv примерно так:

Hostname FQDN  
abc1 abc1.na.edu  
def2 bcd2.sa.edu  
fgh3 fgh3.ea.edu  
.  
.  
and so on

Это мой код:

import socket
import csv
name = []
with open('file1.csv', 'r', newline='') as csvinput:
 reader = csv.reader(csvinput)

for line in csvinput:
 name = socket.getfqdn(line)
 with open('file2.csv', 'w', newline='') as csvoutput:
  fieldnames = (['Hostname', 'FQDN'])
  output = csv.writer(csvoutput)
  output.writerow(fieldnames)
  output.writerow([name])

Я могу получить только одно имя одного случайного имени хоста в выходном файле.Хотя, когда я использую только «print (name)», это дает мне все FQDN в консоли.Я знаю, что что-то упустил, пожалуйста, помогите !!

Внесены некоторые изменения в коде:

import socket
import os
import csv
name = {}
CI = {}
with open('file1.csv', 'r', newline='') as csvinput:
    reader = csv.DictReader(csvinput)

    # status = [row['FQDN'] for row in rows]

    for rows in reader:
        CI = rows['CI_Name']
        name = socket.getfqdn(CI)
        with open('file2.csv', 'a', newline='') as csvoutput:
                output = csv.writer(csvoutput)
                #fieldnames = ['CI_Name', 'FQDN']
                #output = csv.DictWriter(csvoutput, fieldnames=fieldnames)
                #output.writerow(rows)
                output.writerows([[CI] + [name]])

Я могу напечатать имя и соответствующее полное доменное имя, но не могу напечататьзаголовок столбца csv, то есть «CI_Name» и «FQDN»

1 Ответ

0 голосов
/ 17 июля 2018
import socket
import os
import csv
name = {}
CI = {}
with open('file1.csv', 'r', newline='') as csvinput:
    reader = csv.DictReader(csvinput)

    # status = [row['FQDN'] for row in rows]

with open('file2.csv', 'w', newline='') as csvoutput:
    fieldnames = ['CI_Name', 'FQDN']
    output = csv.DictWriter(csvoutput, fieldnames=fieldnames)
    output.writeheader()

for rows in reader:
    CI = rows['CI_Name']
    name = socket.getfqdn(CI)
    with open('file2.csv', 'a', newline='') as csvoutput:
       output = csv.writer(csvoutput)
       output.writerows([[CI] + [name]])
...