@ru_python

Страница 6250 из 9768
Iliya
17.08.2018
11:49:44
Возник вопрос, есть скрип который выполняется на серваке, когда мне надо т.е. я его руками вызываю и он отправляет команды на несколько cisco девайсов - для просмотра простой инфы вроде show cpu table так вот вопрос, есть некоторые команды, которые cisco выполняет не за секунду, а за несколько по это причине юзается костыль вроде time.sleep(5) но иногда команда на циске выполняется явно быстрее 5 сек, но вывода приходится ждать 5 сек собстенно ВОПРОС что сделать вместо слипа, чтобы скрипт дождался отработки команды на циске и перешел к следующей(или вернул мне вывод) сразу после того как циска отработает и вернет вывод команды Cisco девайс возвращает ответ на команды ПОСТРОЧНО! Т.е. show cpu table - отработав отдает 1 строка -> идет на вывод потом 2я строка идет на вывод и тд по конца так что вариант с while not channel.send_ready(): time.sleep(0.1) не подходит так как send_ready() выполняет свою функцию получив только первую строку овтета и запускает следующую команду и в итоге получаю ответы только первые строки выводов команд КОД функции def command_send(ip, name): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=ip, port=22, username=user, password=password) time.sleep(2) print('Info from ' + name + ':\n') chan = ssh.invoke_shell() if a == 20: for line in cli: while not chan.send_ready(): time.sleep(0.1) chan.send(line + '\n') else: while not chan.send_ready(): time.sleep(0.1) chan.send(command_list[a] + '\n') while not chan.recv_ready(): time.sleep(0.1) output = chan.recv(99999) print ('\n'.join(output.split('\n')[3:]) + '\n' + '*' * 80) ssh.close()

Cykooz
17.08.2018
11:52:02
там много ошибок. но у меня появилась теория, что питон 3.7 не дружит с lxml 3.7.3 и надо попробовать на 3.6.5
Найди самую первую и посмотри что ему именно не нравится. Может ему надо какую то системную либу поставить

там много ошибок. но у меня появилась теория, что питон 3.7 не дружит с lxml 3.7.3 и надо попробовать на 3.6.5
В самом lxml заявлено что он умеет питон 3.7, но это может самые последние версии lxml

Влад
17.08.2018
11:54:45
Добрый день, помогите решить проблему,

Google
Влад
17.08.2018
11:54:45


Ос перемещает а субпроцес нет

Почему ?

Iliya
17.08.2018
12:04:09
9 девушек за час, какой-то женский клуб решил писать на питоне -)?

Dk
17.08.2018
12:07:06
9 девушек за час, какой-то женский клуб решил писать на питоне -)?
Надеюсь, харасмент не продолжится. А то смотреть противно даже

Eldar
17.08.2018
12:07:29
я буду выдвать РО

Sergey
17.08.2018
12:10:30
Подскажите по регулярке. Вот так выражение: ftp_host = re.findall(r'@\w+.(\w+)', 'ftp://user:passwd@host:1111/base/dir') вернёт "@host". А как переделать, чтобы возвращало просто host, без амперсанда?

Aragaer
17.08.2018
12:12:56
угх

нинада регулярку

https://docs.python.org/3.5/library/urllib.parse.html#urllib.parse.urlparse

Google
Aragaer
17.08.2018
12:14:52
>>> from urllib.parse import urlparse >>> urlparse('ftp://user:passwd@host:1111/base/dir') ParseResult(scheme='ftp', netloc='user:passwd@host:1111', path='/base/dir', params='', query='', fragment='')

а дальше уже netloc сплитнуть по собаке, а потом переднюю часть сплитнуть по двоеточию

Кирилл
17.08.2018
12:15:32
думаешь urlparse не использует re ?

Maxim
17.08.2018
12:15:45
Гайз, можно ли как-нибудь в одном скрипте 2 бесконечных цикла параллельно запустить?

Iliya
17.08.2018
12:15:48
Возник вопрос, есть скрип который выполняется на серваке, когда мне надо т.е. я его руками вызываю и он отправляет команды на несколько cisco девайсов - для просмотра простой инфы вроде show cpu table так вот вопрос, есть некоторые команды, которые cisco выполняет не за секунду, а за несколько по это причине юзается костыль вроде time.sleep(5) но иногда команда на циске выполняется явно быстрее 5 сек, но вывода приходится ждать 5 сек собстенно ВОПРОС что сделать вместо слипа, чтобы скрипт дождался отработки команды на циске и перешел к следующей(или вернул мне вывод) сразу после того как циска отработает и вернет вывод команды Cisco девайс возвращает ответ на команды ПОСТРОЧНО! Т.е. show cpu table - отработав отдает 1 строка -> идет на вывод потом 2я строка идет на вывод и тд по конца так что вариант с while not channel.send_ready(): time.sleep(0.1) не подходит так как send_ready() выполняет свою функцию получив только первую строку овтета и запускает следующую команду и в итоге получаю ответы только первые строки выводов команд КОД функции def command_send(ip, name): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=ip, port=22, username=user, password=password) time.sleep(2) print('Info from ' + name + ':\n') chan = ssh.invoke_shell() if a == 20: for line in cli: while not chan.send_ready(): time.sleep(0.1) chan.send(line + '\n') else: while not chan.send_ready(): time.sleep(0.1) chan.send(command_list[a] + '\n') while not chan.recv_ready(): time.sleep(0.1) output = chan.recv(99999) print ('\n'.join(output.split('\n')[3:]) + '\n' + '*' * 80) ssh.close()
@aragaer может у вас есть идеи по этому вопросу?ъ

Aragaer
17.08.2018
12:17:45
и даже еще круче >>> from urllib.parse import urlsplit >>> res = urlsplit('ftp://user:passwd@host:1111/base/dir') >>> res.username 'user' >>> res.hostname 'host' >>> res.password 'passwd'

@aragaer может у вас есть идеи по этому вопросу?ъ
не знаю, я с парамикой не работал особо

Artyem
17.08.2018
12:20:23
Возник вопрос, есть скрип который выполняется на серваке, когда мне надо т.е. я его руками вызываю и он отправляет команды на несколько cisco девайсов - для просмотра простой инфы вроде show cpu table так вот вопрос, есть некоторые команды, которые cisco выполняет не за секунду, а за несколько по это причине юзается костыль вроде time.sleep(5) но иногда команда на циске выполняется явно быстрее 5 сек, но вывода приходится ждать 5 сек собстенно ВОПРОС что сделать вместо слипа, чтобы скрипт дождался отработки команды на циске и перешел к следующей(или вернул мне вывод) сразу после того как циска отработает и вернет вывод команды Cisco девайс возвращает ответ на команды ПОСТРОЧНО! Т.е. show cpu table - отработав отдает 1 строка -> идет на вывод потом 2я строка идет на вывод и тд по конца так что вариант с while not channel.send_ready(): time.sleep(0.1) не подходит так как send_ready() выполняет свою функцию получив только первую строку овтета и запускает следующую команду и в итоге получаю ответы только первые строки выводов команд КОД функции def command_send(ip, name): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=ip, port=22, username=user, password=password) time.sleep(2) print('Info from ' + name + ':\n') chan = ssh.invoke_shell() if a == 20: for line in cli: while not chan.send_ready(): time.sleep(0.1) chan.send(line + '\n') else: while not chan.send_ready(): time.sleep(0.1) chan.send(command_list[a] + '\n') while not chan.recv_ready(): time.sleep(0.1) output = chan.recv(99999) print ('\n'.join(output.split('\n')[3:]) + '\n' + '*' * 80) ssh.close()
https://ru.wikipedia.org/wiki/Expect https://pexpect.readthedocs.io/en/stable/ оно по идее какраз для таких вещей, есть расширение для paramiko https://github.com/fgimian/paramiko-expect

Iliya
17.08.2018
12:20:51
не знаю, я с парамикой не работал особо
я думаю на потоки разбить, к примеру мне надо опрашивать 12 машин = 12 потоков, но с ними давненько не работал. Как мне заставить ожидать полного завершения потока - а потом положить это куда-нибудь потом все сложить из потоков и вывести сразу

Aragaer
17.08.2018
12:30:31
асинкио не потоки

Dk
17.08.2018
12:32:40
Джангогёрлз с митапа чтоль?

Alex
17.08.2018
12:33:21
асинкио не потоки
не потоки, но я так понял ему нужно опросить 12 серверов, asyncio тут как раз подойдет

Hope
17.08.2018
12:38:57
в понедельник

Iliya
17.08.2018
12:39:25
не потоки, но я так понял ему нужно опросить 12 серверов, asyncio тут как раз подойдет
прикольная штука, не слышал про нее появилась с 3.4 надо изучить подробнее А вот про paramiko-expect не совсем понял чем она мне поможет

Nikolay
17.08.2018
12:40:34
Анзибл ещё умеет ждать сервера

Google
Iliya
17.08.2018
12:41:26
так что пока основная идея потоки - складывать вывод из них в пул и потом этот пул выводить пол первый отработал в пул кто второй за ним и только когда последний отработает и запишется в пул выводить его как заставить поток ждать полного вывода и потом его отправить в пул и еще вопрос, что лучше использовать для этого пула

Iliya
17.08.2018
12:42:44
щито?
ну тип опрашивать все машины сразу каждую в отжельном потоке

Alex
17.08.2018
12:43:09
concurrent.futures же...

ivanblch R13 [Denis ?? Armavir]
17.08.2018
12:43:42
Alex
17.08.2018
12:44:01
ZeroMQ не поможет?
каким боком тут ZeroMQ?

ivanblch R13 [Denis ?? Armavir]
17.08.2018
12:44:37
оно хоть потоки, хоть процессы, хоть целые компы меж собой соединит

хоть как опрашивай

ShadoWalkeR
17.08.2018
12:46:48
Господа. Есть интересный вопрос - есть ситуация import ABC class Test: from local_funcs import f1 from local_funcs import f2 local_funcs - один из кучи файлов, реализующих методы класса, чтобы не превращать в гигантскую портянку главный файл. Как мне ABC унаследовать в загружаемые методы класса? Не очень улыбается этот import пихать в каждый файл

ivanblch R13 [Denis ?? Armavir]
17.08.2018
12:47:11
на любые - так на любые. По утрам мастурбируете?

Bohdan
17.08.2018
12:47:24
вопрос: админов звать или сам выпилишься и сообщение удалишь?

ShadoWalkeR
17.08.2018
12:49:18
У меня не странных вопросов не бывает. В одном проекте просто очень своеобразное представление о том как питон надо использовать в качестве встроенного ЯП

Пример разработчиков https://github.com/kamailio/kamailio/blob/master/misc/examples/kemi/kamailio-basic-kemi-python.py

Artyem
17.08.2018
12:52:05
так что пока основная идея потоки - складывать вывод из них в пул и потом этот пул выводить пол первый отработал в пул кто второй за ним и только когда последний отработает и запишется в пул выводить его как заставить поток ждать полного вывода и потом его отправить в пул и еще вопрос, что лучше использовать для этого пула
>как заставить поток ждать полного вывода и потом его отправить в пул для этого expect и нужен, он собственно так и работает, отправить такую-то команду, подождать пока в ответе не появиться вот такие символы если появились отправить другое. отправте команду, и ждите появления строки приглашения для ввода следующей команды

Panda
17.08.2018
13:06:17
Вопрос: import requests в цикле RECORD = requests.get(некий урл) (ну фрешдеск если быть точным) читает то 10 страниц, то 30 потом падает ...\Python36-32\lib\site-packages\urllib3\connection.py", line 171, in _new_conn (self._dns_host, self.port), self.timeout, **extra_kw) ну и еще пару ошибок в connection.py гугль говорит что это тайм-аут еррор time.sleep в цикле никак не помогает кто-то сталкивался?

Admin
ERROR: S client not available

ShadoWalkeR
17.08.2018
13:15:26
В функциях, которые я ипортирую в класс в качестве методов есть вызовы функций ABC

Google
Denis
17.08.2018
13:16:02
И зачем его тут импортировать, а не в local_funcs?

Iliya
17.08.2018
13:17:27
>как заставить поток ждать полного вывода и потом его отправить в пул для этого expect и нужен, он собственно так и работает, отправить такую-то команду, подождать пока в ответе не появиться вот такие символы если появились отправить другое. отправте команду, и ждите появления строки приглашения для ввода следующей команды
постарался понять что на гите написано висит в голове один вопрос, что это PROMPT = 'vagrant@paramiko-expect-dev:~\$\s+' потом я так понял - это как раз то, чего мы ждем, мол индикатор который покажет нам что каманда отработала до конца, я правильно понимаю?

Sergey
17.08.2018
13:32:07
Подскажите по регулярке, строка : ftp_user = re.findall(r'//(\w+)', parse_path) Выводит результаты как список. Как сделать чтобы выдавало просто строку?

Dmitriy
17.08.2018
13:37:39
Подскажите по регулярке, строка : ftp_user = re.findall(r'//(\w+)', parse_path) Выводит результаты как список. Как сделать чтобы выдавало просто строку?
ftp_user = re.findall(r'//(\w+)', parse_path)[0]? Только проверку сделай на случай, если ничего не найдет. А то будет [0] от пустого списка.

Ilya
17.08.2018
13:58:06
Привет, подскажите, кто на Python подключал internet explorer к selenium webdriver? Есть рабочие примеры?

Ilya
17.08.2018
14:03:00
Вадим
17.08.2018
14:04:27
записать что?
какая операционка

Ilya
17.08.2018
14:04:45
что? причем тут это)

Вадим
17.08.2018
14:07:12
что? причем тут это)
selenium вряд ли работает через explorer

Ilya
17.08.2018
14:07:27
работает. даже для оперы какой нибудь работает

Ilya
17.08.2018
14:09:15
Ie с большой буквы

Вадим
17.08.2018
14:10:21
Ie с большой буквы
как скажешьъ\

Igor
17.08.2018
14:16:21
Где стоимость рекламы на канале посмотреть ?

Igor
17.08.2018
14:27:32
Не продается реклама на канале ?

Eldar
17.08.2018
14:27:49
Google
Igor
17.08.2018
14:28:59
Програмисты крутые ребята ))

Андрей
17.08.2018
14:33:49
Програмисты крутые ребята ))
это только на первый взгляд

Cashik
17.08.2018
14:38:55
это только на первый взгляд
А на второй еще круче

Иван
17.08.2018
15:08:09
Ребята help я новичок в питоне помогите)) сижу из под ubuntu запускаю python скрипт пишет ошибку что мол нету файла или папки хотя я ее создал и лежит в корне с файлом, что не так?





Страница 6250 из 9768