Использование набора CSV для добавления нового столбца в CSV и заполнения его результатами из socket.gethostname()

Я пытаюсь написать сценарий Python для анализа файла CSV (results.csv), который принимает имена хостов, перечисленные в нем, ищет IP-адреса для каждого имени хоста и добавляет эти данные в файл CSV в новом столбце.

Я сделал некоторые поиски и ударил немного стены. Также я должен подчеркнуть, что я новичок в Python, и это то, что я делаю, чтобы расширить свои знания.

Я использую Python 2.7.x на OS X и мой код выглядит следующим образом:

#!/usr/bin/python

import socket
import csvkit

with open('results.csv', 'rb') as infile:
    with open('output.csv', 'wb') as outfile:
        writer = csvkit.writer(outfile)
        for row in csvkit.reader(infile):
            IP = socket.gethostname(row)
            writer.writerow(row+[IP])

Когда я запускаю это в PyCharm, я получаю следующую ошибку:

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/xxxxxx/PycharmProjects/typosquating/IP_lookup.py Traceback (последний вызов был последним): Файл "/Users/xxxxxx/PycharmProjects/typosquating/IP_lookup.py", строка 10, в IP = socket.gethostname(row) TypeError: gethostname() не принимает аргументов (1 дано)

Процесс завершен с кодом выхода 1

Может кто-нибудь пролить свет на то, что я делаю, отжимая? Я могу использовать socket.gethostname() в другом скрипте таким же образом, как описано выше, чтобы просмотреть содержимое файла results.csv и вывести соответствующие IP-адреса каждого имени хоста на экран, но, похоже, в этом случае произойдет сбой.

Спасибо за вашу помощь.

1 ответ

Решение

socket.gethostname() не принимает аргументов То, что вы ищете, это socket.gethostbyname(hostname)

Вы могли бы хотеть RTFM

Другие вопросы по тегам