Найти - Пользователи
Полная версия: Вывод с консоли в интерператор
Начало » Python для новичков » Вывод с консоли в интерператор
1
Nosaer
Решил написать программу, для своевременного быстрого доступа к своему компьютеру. В виде сервера и клиента.
Управление производится с помощью обращения к cmd, то есть через os.system отправляю команды в консоль windows.
Есть ли возможность наблюдать то, что в этот момента выводится в консоли?!
В слепую совершать сложные операции не очень то и удобною
doza_and
Ловите данные из stdout и шлете себе (см перенаправление stdout). А вы telnet, rsh и прочие стандарные средства
не хотите принципиально использовать?
Nosaer
не то чтобы принципиально, но хотелось бы просто остаться в рамках самого языка.
stdout я с ним разобрался в том плане, что получаю вывод с консоли только после того как функция полностью выполнена, то есть не ждет ответа от пользователя.Если же необходимо ввести подтверждение, или просто задать тоже время. То вывод уже не приходит. Как можно решить эту проблему?!
doza_and
Я сам новичек - поэтому привожу что умею
import subprocess as sp
import time
from threading import Thread

class Tcmd(Thread):
def __init__ (self):
Thread.__init__(self)
self.evt=threading.Event()
def run(self):
self.c=sp.Popen(["cmd"],stdin=sp.PIPE,stdout=sp.PIPE)
self.evt.set()
while 1:
a=self.c.stdout.readline()
if not a:
break
print("send:"+a)
def put(self,cmd):
self.c.stdin.write(cmd)

obj=Tcmd()
obj.start()
obj.evt.wait()
obj.put("dir\n")
time.sleep(2)
obj.put("echo\n")
time.sleep(2)
obj.put("exit\n")
obj.join()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB