Управление IP-адресами и файлами python 2.6

#python-2.6

#python-2.6

Вопрос:

Я новичок в python, и мне нужна ваша помощь, чтобы улучшить часть моего скрипта, чтобы сделать его более сложным.

==================================== a.py

устройства = [‘x.x.x.x’, ‘x.x.x.x’, ‘x.x.x.x’]

============================= ОСНОВНОЙ КОД

из импортируемых устройств

для ip в устройствах:

  ssh connection 
  

значение = 1;

 if value == 1: 

   open a specific file 
   run the commands from this file.

elif value == 2: 

   open a specific file 
   run the commands from this file.

elif value == 3: 

   open a specific file 
   run the commands from this file.
  

=============================================

Проблема: для каждого IP-адреса, который он хранит в a.py файл, мне нужно запустить определенный набор команд. С помощью оператора IF он работает нормально, но если я добавлю больше IP-адреса на a.py файл должен добавить мой код.

Спасибо вам всем.

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

1. Независимо от этого вопроса, если вы новичок в Python, я настоятельно рекомендую вам использовать Python3.x вместо Python2.x. Python2 уже некоторое время является EOL и больше нигде не должен использоваться.

2. Что касается вашего вопроса: можно ли добавить ваш пример кода, заключенный в блок кодирования? Вы можете щелкнуть фигурные скобки в редакторе, чтобы отформатировать блок кода. Потому что в настоящее время трудно отделить ваш код от дополнительной информации.

Ответ №1:

Надеюсь, я правильно интерпретирую ваш вопрос. Поправьте меня, если это не так.

В настоящее время у вас есть список с 3 IP-адресами, и вы обрабатываете их с помощью трех операторов if. Проблема в том, что если вы добавите больше записей в свой список, вам придется вручную добавлять дополнительные операторы if в свой код?

Если это предположение о вашем вопросе верно, то действительно. Есть лучший способ сделать это:

 devices = ['x.x.x.x', 'x.x.x.x', 'x.x.x.x']
for dev in devices:
   do_something(dev)
  

Это будет перебирать все устройства в вашем списке и выполнять один и тот же код на каждом устройстве.