Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2015 11:42:12

carter85
Зарегистрирован: 2013-10-09
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в переменную

Добрый день.
Подскажите пожалуйста
есть код

import ping
ping = ping.verbose_ping("www.yandex.ru")
print ping
Хочу чтобы вывод уходил в переменную, а она отрабажается сразу:

ping www.yandex.ru with ... get ping in 4.0059ms
ping www.yandex.ru with ... get ping in 3.5219ms
ping www.yandex.ru with ... get ping in 6.7251ms
ping www.yandex.ru with ... get ping in 5.2021ms

Что нужно сделать, чтобы вывод уходил в переменную и дальше распарсить мне?
Спасибо.

Офлайн

#2 Янв. 29, 2015 12:05:36

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

вывод в переменную

import ping
var_ping = ping.verbose_ping("www.yandex.ru")
print var_ping[0:5]
var_ping - ваша переменная



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Янв. 29, 2015 12:19:15

carter85
Зарегистрирован: 2013-10-09
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в переменную

ZerG
ping www.yandex.ru with ... get ping in 6.5320ms
ping www.yandex.ru with ... get ping in 5.6200ms
ping www.yandex.ru with ... get ping in 6.8049ms
ping www.yandex.ru with ... get ping in 6.1791ms
Traceback (most recent call last):
  File "./ssh.py", line 23, in <module>
    print var_ping[0:5] 
TypeError: 'NoneType' object has no attribute '__getitem__'

вот так вот выходит…воообщем тоже самое

Офлайн

#4 Янв. 29, 2015 12:34:00

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

вывод в переменную

Вот так на пример

import ping
res = [round(ping.do_one('ya.ru', timeout=60, psize=64) * 1000, 4) for i in range(3)]
print(res)

Офлайн

#5 Янв. 29, 2015 12:36:56

carter85
Зарегистрирован: 2013-10-09
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в переменную

ping.do_one - работает, уже проверял
но я хочу именно ping = ping.verbose_ping(“www.yandex.ru”), почему не получается?

Офлайн

#6 Янв. 29, 2015 12:46:37

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

вывод в переменную

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

Офлайн

#7 Янв. 29, 2015 12:47:44

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

вывод в переменную

Я немного поспешил с ответом!
Вот код бибилиотеки
https://bitbucket.org/delroth/python-ping/src/7084c31fa1603a1071c30525ae0431da42ce93cd/ping.py?at=default

Посмотрите на функцию которую вы используете ping.verbose_ping
ЕЕ результат вывод данных через оператор print
так что либо внесите изменения в либу - либо используйте ее часть для написания своей функции.

Кроме того alex925 подсказал вам правильное решение



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Янв. 29, 2015 12:48:30)

Офлайн

#8 Янв. 29, 2015 12:52:22

carter85
Зарегистрирован: 2013-10-09
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в переменную

ZerG
Я немного поспешил с ответом!Вот код бибилиотекиhttps://bitbucket.org/delroth/python-ping/src/7084c31fa1603a1071c30525ae0431da42ce93cd/ping.py?at=defaultПосмотрите на функцию которую вы используете ping.verbose_pingЕЕ результат вывод данных через оператор printтак что либо внесите изменения в либу - либо используйте ее часть для написания своей функции.Кроме того alex925 подсказал вам правильное решение
ZerG
Я немного поспешил с ответом!Вот код бибилиотекиhttps://bitbucket.org/delroth/python-ping/src/7084c31fa1603a1071c30525ae0431da42ce93cd/ping.py?at=defaultПосмотрите на функцию которую вы используете ping.verbose_pingЕЕ результат вывод данных через оператор printтак что либо внесите изменения в либу - либо используйте ее часть для написания своей функции.Кроме того alex925 подсказал вам правильное решение


Спасибо большое за развернутый ответ) всё понял.

Офлайн

#9 Янв. 29, 2015 13:01:57

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

вывод в переменную

carter85
всё понял.
А до этого ты не понимал, что функция занимается тем, что выводит результат на стандартный вывод?

Офлайн

#10 Янв. 29, 2015 13:57:28

carter85
Зарегистрирован: 2013-10-09
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в переменную

alex925
1) я упустил этот момент, и функции не всегда выводят на стандартный вывод принт. 1) у всех по разному работает мозг, я не догнал сразу,

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version