Форум сайта python.su
import os import random import multiprocessing as mp def make_4_numbers(): a = random.randint a1, a2, a3, a4 = \ a(0, 255), a(0, 255), a(0, 255), a(0, 255) return '%s.%s.%s.%s' % (a1, a2, a3, a4) def make_nc_result(ip, port, counter): os.popen('nc -w 0 -v %s %s > %s' % (ip, port, counter)) return open(counter).read() def f(i): return make_nc_result(make_4_numbers(), 22, i) result = [] pool = mp.Pool(processes=50) for i in range(100): pre_res = pool.apply_async(f, (str(i),)) rr = pre_res.get(timeout=1) result.append(rr) import pdb pdb.set_trace() print(result[0])
Отредактировано ks (Сен. 17, 2012 22:41:47)
Офлайн
https://www.google.ru/search?q=subprocess+popen+read
>>> from random import randint >>> def get_ip(): return '.'.join([str(randint(0, 255)) for _ in xrange(4)]) >>> get_ip() '222.201.109.31'
Отредактировано fata1ex (Сен. 18, 2012 09:31:25)
Офлайн
Согласен - так красивее.>>> from random import randint >>> def get_ip(): return '.'.join([str(randint(0, 255)) for _ in xrange(4)]) >>> get_ip() '222.201.109.31'
fata1exНо вопрос у меня возник именно исходя из того,
https://www.google.ru/search?q=subprocess+popen+read
Отредактировано ks (Сен. 18, 2012 11:42:40)
Офлайн
По ссылке идут примеры с модулем subprocess, а не os, лучше использовать именно его. Ну и примеров там предостаточно на первой же странице, какой смысл копировать их сюда?
Офлайн
ks
или покажите пример.
def ping(host, timeout=None, count=4): params = ["ping", host, "-n", str(count)] if timeout is not None: params.extend(["-w", str(timeout)]) process = subprocess.Popen(params, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, error = process.communicate() ...
Офлайн
fata1exСмысл есть.. если кто-то также не разберется, как я - заглянет сюда и ему все станет понятно.
def make_nc_result(ip, port, counter): os.system('nc -w 0 -v %s %s > %s' % (ip, port, counter))
reclosedevСпасибо! Будет время опробовать, отпишусь о результатах.
Офлайн
>>> import subprocess >>> p = subprocess.Popen('pssh -H localhost \'echo 1\'', shell=True, stdout=subprocess.PIPE) >>> res = p.communicate()[0] >>> res '[1] 16:55:59 [SUCCESS] localhost\n'
Отредактировано ks (Сен. 27, 2012 16:03:55)
Офлайн