IP-регистратор Python, принимающий и выводящий данные в формате csv

#python-3.x #csv #ip #ping #logfile

#python-3.x #csv #ip #ping #файл журнала

Вопрос:

Здравствуйте, я ищу некоторую помощь в проекте, за который я недавно взялся, чтобы помочь проверить подключение к ПК на моем рабочем месте. Я довольно новичок в Python и программировании в целом, поэтому большая часть этого может быть неправильной. Я пытаюсь создать простой IP-регистратор, который будет проверять адрес назначения и возвращать значение для определения состояния подключения к компьютеру. Он будет принимать данные из файла CSV (excell.xlsx ) и выделите IP-адрес из информации, предоставленной в формате cell style, затем выведите состояние соединения простым «подключено» или «отключено» после повторного внесения входного файла в список. Вот что у меня получилось на данный момент:

 import csv, platform, subprocess, os as sys

#Defines filepath locations (Adjustment may be required)
in_path = sys.os.path['C:UsersUserDocumentsIpLoglog1.xlsx']
out_path = sys.os.path['C:UsersUserDocumentsIpLogip_log.xlsx']


try:
    ip = 0

    reference = out_path
    host = '?'
    line_count = 0
    with open(in_path, dialect='excel', delimeter=',', newline='') as csvfile:
       for row in csvfile:
           if line_count == 0:
                ip_inp = csv.reader(in_path, dialect='excel') #adjust filename as needed.
                ip = ip_inp[ip_inp.index('10.21')]
                ip = ip[5::]
                line_count  = 1

    for line in ip_inp:
        def ping(ip):
            """
            Returns True if host (str) responds to a ping request.
            Remember that a host may not respond to a ping (ICMP) request  even if the host name is valid.
            """

            # Option for the number of packets as a function of
            param = '-n' if platform.system().lower() == 'windows' else '-c'

            # Building the command. Ex: "ping -c 1 google.com"
            command = ['ping', param, '1', ip]

            return subprocess.call(command) == 0

        if subprocess.call(command) == 0:
            status = subprocess.call(command)
        else:
            status = 1
            if status == 0:
                if line_count == 0:
                    net_state = 'Connected'
                    with open(out_path, delimiter=',') as csvfile2:
                        print(csvfile)
                        csv.writer(csvfile2, dialect='excel')
                        print(net_state)
                else:
                    net_state = 'Disconnected'
                    with open(out_path, delimiter=',') as csvfile2:
                        print(csvfile)
                        csv.writer(csvfile2, dialect='excel')
                        print(net_state)

except IOError:
    print('Error opening the input file please check file input name and file location and try again.')

finally:
    raise SystemExit('Operation Completed. Results have been written to (%s)' % out_path)
  

Прямо сейчас ошибка, с которой я продолжаю сталкиваться, — это усечение в моих переменных глобального пути к файлу. Кто-нибудь может сказать мне, почему это может происходить?

Комментарии:

1. В чем конкретно заключается ваш вопрос? Какие ошибки у вас есть (если есть)? и каков именно ваш желаемый результат? Мы ценим, что вы публикуете код и прилагаете усилия, но нам нужно еще несколько деталей. Добро пожаловать в SO!

2. Справедливо, я буду продолжать обновлять его по ходу работы, но это то, что я придумал до сих пор по проблемам (публикация проблем будет показана после блока кода)