【问题标题】:Perform NSLOOKUP by reading it from one csv and writing it to other csv in Python通过从一个 csv 读取并在 Python 中将其写入其他 csv 来执行 NSLOOKUP
【发布时间】:2018-06-04 18:58:49
【问题描述】:

我一直在尝试执行 NSLOOKUP 并将值写入 csv 文件。

我的文件 1.csv:

Hostname  
abc1  
def2  
fgh3   
.  
.  
.  
and so on  

我想对这些主机名进行 nslookup 并将 FQDN 写入 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])

我只能在输出文件中获得一个随机主机名的 fqdn。虽然,当我只使用“打印(名称)”时,它会给我控制台中的所有 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]])

我可以打印名称和相应的 FQDN,但无法打印 csv 列上的标题,即“CI_Name”和“FQDN”

【问题讨论】:

    标签: python python-3.x csv export-to-csv nslookup


    【解决方案1】:
    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]])
    

    【讨论】:

      猜你喜欢
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      相关资源
      最近更新 更多