Программа чтения CSV Python прерывается, если строка не содержит разделителя полей ⇐ Python

Программы на Python
Anonymous
Программа чтения CSV Python прерывается, если строка не содержит разделителя полей

Сообщение Anonymous »

Я создаю сценарий, который работает с файлом CSV, в котором у меня есть сетевые устройства и их IP-адреса с одного и того же сайта. Моя цель — собрать имена хостов в один список, а IP-адреса в разные списки в зависимости от типа сетевого устройства.
Мне удалось разобраться со всеми возможными ошибками, кроме тех, которые предназначены для использования случай, когда файл CSV создается вручную (не экспортируется из электронной таблицы в виде файла CSV), и пользователь забывает добавить запятую между двумя значениями или добавляет только имя хоста или IP-адрес, но без запятой после или перед.< /p>
Сейчас цикл прерывается, когда находит строку без разделителя полей.
Легко ли с этим справиться?
В этих случаях решением было бы переписать строку (строку) и добавить запятую, но я не знаю, как это сделать внутри цикла чтения программы чтения CSV:
  • Добавьте запятую между именем и IP-адресом.
  • Добавьте запятую после имени хоста.
  • Добавьте запятую перед IP-адрес
  • Добавьте дополнительные запятые в любом месте
Это мой CSV-файл, который я использую для тестирования ( этот вариант использования только с отсутствующим IP-адресом)

Код: Выделить всё

# This is the expected input
dntsw1101,10.2.3.1
# For this error I'm throwing a warning to the user
dntsw1101,
# For this error I'm throwing a warning to the user
,1.2.3.1
# For the empty line case I'm throwing a warning to the user

# CSV reader manages this error without any problem
dntsw1101,10.2.3.1,,,
!
# This is issue #1
dntsw110110.2.3.1
# This is issue #2
dntsw1101
# This is issue #3
10.2.3.1
# This is issue #4
dntsw1101,,10.2.3.1
Поскольку все IP-адреса начинаются с 10, 172 или 192 (частное пространство), было бы легко использовать REGEX для группировки в проблеме № 1 и разделить имя хоста и нумерацию из IP-адрес, найдя эти значения.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -separator

Вернуться в «Python»