Уведомления

Группа в Telegram: @pythonsu

#1 Май 8, 2009 09:36:53

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

Здравстуйте. Интересует следующее: как можно перенаправить вывод из питона в терминал (ubuntu 9.04). К примеру есть строка ‘ . /home/user/cpuinfo’ которая в bash выполняет данный файл (в файле команда берущая инфо о процессоре). Имеется множество таких вот файлов. Из терминала всё работает прекрасно. Теперь нужно организовать скриптик типа который за раз запустит их всех без надобности работать с каждым отдельно. Может как то выводится это всё в аккурат на выполнение в терминале через питон? Спасибо.



Офлайн

#2 Май 8, 2009 10:08:57

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

точно не уверен ..но попробуй через:

import os
os.system('. /home/user/cpuinfo')



Офлайн

#3 Май 8, 2009 10:15:08

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

Muslim
Интересует следующее: как можно перенаправить вывод из питона в терминал (ubuntu 9.04).
print 'Это в терминал'
Muslim
Теперь нужно организовать скриптик типа который за раз запустит их всех без надобности работать с каждым отдельно.
http://www.python.org/doc/2.5/lib/module-subprocess.html
Вообщем-то если не перенаправлять и не закрывать stdout и stderr дочернего процесса в котором будут выполнятся скрипты, то ничего перенаправлять и не надо будет, тк они по-умолчанию унаследуют stdout и stderr родительского процесса, а он уже связан с /dev/tty или /dev/pty.



Офлайн

#4 Май 8, 2009 19:36:20

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

goblin_maks
точно не уверен ..но попробуй через:

import os
os.system('. /home/user/cpuinfo')
Спасибо. Как раз то что нужно. Еще раз спасибо.



Офлайн

#5 Май 8, 2009 19:39:05

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

slivlen
http://www.python.org/doc/2.5/lib/module-subprocess.html
Вообщем-то если не перенаправлять и не закрывать stdout и stderr дочернего процесса в котором будут выполнятся скрипты, то ничего перенаправлять и не надо будет, тк они по-умолчанию унаследуют stdout и stderr родительского процесса, а он уже связан с /dev/tty или /dev/pty.
Пища для размышления. Благодарю.



Офлайн

#6 Май 8, 2009 19:43:54

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

Следом очередной вопрос - как послать в тот же терминал скажем Ctrl+C или Ctrl+D ну да любую последовательность. Может у кого есть прямая ссылка или в голове завалялось? Очень помогло бы.



Офлайн

#7 Май 9, 2009 09:58:13

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

Muslim
Следом очередной вопрос - как послать в тот же терминал скажем Ctrl+C или Ctrl+D ну да любую последовательность. Может у кого есть прямая ссылка или в голове завалялось? Очень помогло бы.
Ctrl+c или н-р Ctrl+z посылают процессу соответствующий сигнал, и чтобы получить действие эквивалентное нажатию этих комбинаций достаточно процессу послать сигнал. Ctrl+d посылает EOF, его можно послать н-р через pipe в stdin процесса(достаточно закрыть для этого файловый дескриптор родителя связанный с stdin дочернего процесса).
А дальше учи мат часть:
man 2 signal
man 7 signal
man 1 kill
man 2 kill



Офлайн

#8 Май 12, 2009 14:05:05

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенаправление вывода в терминал

Всем спасибо. Помогли.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version