Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Python: Вывод с консоли(cmd) в интерператор

57K
21 декабря 2010 года
Nosaer
18 / / 25.08.2010
Чтоб обращаться к кансоли используется os.system. Но она передает ей команды, а как получать вывод с нее?!
285
21 декабря 2010 года
Romik
479 / / 24.11.2002
Что значит "получать вывод с неё"? Дампить /dev/ttyX или читать команды введённые пользователем? Или читать вывод других команд через pipe?
57K
21 декабря 2010 года
Nosaer
18 / / 25.08.2010
У меня есть клиент, и есть сервер(socket). С помощью клиента, посылаю команды для консоли на сервер через. Все замечательно выполняется. Но вывода в клиенте я не наблюдаю. Весь вывод идет в консоли что запущена на сервере.
Задача сводится к тому, чтобы то что выводится на в консоли на сервере, каким то образом отправить клиенту.
87
22 декабря 2010 года
Kogrom
2.7K / / 02.02.2008
Попробую привести пример кода для уточнения задачи. Не используем os.system, но смысл близок.

 
Код:
import subprocess

p = subprocess.Popen("ls", shell=True, stdout = subprocess.PIPE)
out = p.stdout.read()


Тут выполнили задачу, поместили вывод в строку. Однако, эту строку надо ещё и передать клиенту. Кроме того, такой способ подходит не для всех команд. Например, не подойдёт для команды с ожиданием ввода пароля.
57K
24 декабря 2010 года
Nosaer
18 / / 25.08.2010
Вот смотрите, если вместо ls например прописать help то все просто отлично. А если прописать time, то уже косяк. Программа ждет завершения функции в командной строке, прежде чем выдать результат, а для того чтобы она завершилась, нужно ввести значение нового времени.

П.С. это приминительно к Windows
87
24 декабря 2010 года
Kogrom
2.7K / / 02.02.2008
Windows-а у меня нет сейчас. И не совсем ясно понял вопрос. Буду гадать. Попробуйте что-то типа:

p = subprocess.Popen(["time", "param1", "param2"], shell=True, stdout = subprocess.PIPE)

где вместо "param1", "param2" и т.д. подставьте то, что требуется. То есть допустим список строк.

Возможно, надо поиграться параметрами Popen. Например, установить universal_newlines=True.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог