![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Задача такая из командной строки можно вызвать файл задав ему некоторые параметры
В результате файл выведет данные в зависимости от параметров. Вопрос: Необходимо запустить файл из ПИТОНА (+ задать небходимые параметры) а результат записать в отдельную переменную! Можно ли для этого использовать пайпы? |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Да.
Если нужно разделить stdout/stderr, то для этого есть варианты popen* --------------------
Be easy, stay cool |
|||
|
||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Или если немного уточнить требуется сделать запуск программы из питона с задачей параметров
(Ну по сути такое можно зделать руками из командной строки) |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Желательно словить не только СТДОУТ но и СТДЕРОР
(кокто использовать функу popen3) |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Нужен Py2.4+
P.S. Для подробностей смотри документацию --------------------
Be easy, stay cool |
|||
|
||||
slav0nic |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 17.5.2006 Репутация: 4 Всего: 5 |
os.popen2/3 возвращает какраз значения stdout, stderror можно ловить без гиммороя
--------------------
python.com.ua |
|||
|
||||
albertn |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
А что еще для счастья надо?
Модуль popen2 |
||||
|
|||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
slav0nic, albertn:
--------------------
Be easy, stay cool |
|||
|
||||
albertn |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Да, но каждая функция это делает по-своему |
||||
|
|||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Еще не большой ньюанс:
В во время выполнения функи popen3 создаеться файлик (так и задумано) и кидаеться в корневую папочку (ну от куда вызывался) а у меня это получаеться рабочий стол.... Подскажите как поменять это на произвольную папку... Спасибо! |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Воспользуйся os.chdir(path) |
|||
|
||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Вообще я странную вещь заметил...
Смотрите вот со страницы: http://docs.python.org/lib/module-popen2.html говорят: popen4( cmd[, bufsize[, mode]]) Executes cmd as a sub-process. Returns the file objects (child_stdout_and_stderr, child_stdin). В тоже время у меня она возврщает данные в такой последовательности: 1.child_stdin 2.child_stdout_and_stderr Что бы это могло быть? |
|||
|
||||
albertn |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
У меня все впорядке, никогда таких проблем небыло
Все работает. |
||||
|
|||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Еще ньюанс один:
Если я просматриваю СТДОУТ (напр команда sOut.read()) то сообщения теряют стандартное форматирование (ну если из командной строки все сделать то данные выведутся в красивые таблички а у меня вместо сего выводит все подряд включая символы форматирования) Вопрос можно ли както сберечь форму СТДАУТА(НУ И ЕРОРА) Спасибо |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
А ты как на экран выводишь через print или как? |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Пример в студию
--------------------
Be easy, stay cool |
|||
|
||||
HellanD |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Вот например такой кусок кода смотрите:
|
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Напиши так:
|
|||
|
||||
aspolyakov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.9.2008 Где: Russia, Urals, Ye katerinburg Репутация: нет Всего: нет |
Подскажите а popen* может читать ваывод cmd в реальном времени? У меня код есть и читать он вывод с задержкой и одним разом:
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |