Форум сайта python.su
Здравстуйте. Интересует следующее: как можно перенаправить вывод из питона в терминал (ubuntu 9.04). К примеру есть строка ‘ . /home/user/cpuinfo’ которая в bash выполняет данный файл (в файле команда берущая инфо о процессоре). Имеется множество таких вот файлов. Из терминала всё работает прекрасно. Теперь нужно организовать скриптик типа который за раз запустит их всех без надобности работать с каждым отдельно. Может как то выводится это всё в аккурат на выполнение в терминале через питон? Спасибо.
Офлайн
точно не уверен ..но попробуй через:
import os
os.system('. /home/user/cpuinfo')
Офлайн
Muslim
Интересует следующее: как можно перенаправить вывод из питона в терминал (ubuntu 9.04).
print 'Это в терминал'
Muslimhttp://www.python.org/doc/2.5/lib/module-subprocess.html
Теперь нужно организовать скриптик типа который за раз запустит их всех без надобности работать с каждым отдельно.
Офлайн
goblin_maksСпасибо. Как раз то что нужно. Еще раз спасибо.
точно не уверен ..но попробуй через:import os
os.system('. /home/user/cpuinfo')
Офлайн
slivlenПища для размышления. Благодарю.
http://www.python.org/doc/2.5/lib/module-subprocess.html
Вообщем-то если не перенаправлять и не закрывать stdout и stderr дочернего процесса в котором будут выполнятся скрипты, то ничего перенаправлять и не надо будет, тк они по-умолчанию унаследуют stdout и stderr родительского процесса, а он уже связан с /dev/tty или /dev/pty.
Офлайн
Следом очередной вопрос - как послать в тот же терминал скажем Ctrl+C или Ctrl+D ну да любую последовательность. Может у кого есть прямая ссылка или в голове завалялось? Очень помогло бы.
Офлайн
MuslimCtrl+c или н-р Ctrl+z посылают процессу соответствующий сигнал, и чтобы получить действие эквивалентное нажатию этих комбинаций достаточно процессу послать сигнал. Ctrl+d посылает EOF, его можно послать н-р через pipe в stdin процесса(достаточно закрыть для этого файловый дескриптор родителя связанный с stdin дочернего процесса).
Следом очередной вопрос - как послать в тот же терминал скажем Ctrl+C или Ctrl+D ну да любую последовательность. Может у кого есть прямая ссылка или в голове завалялось? Очень помогло бы.
Офлайн
Всем спасибо. Помогли.
Офлайн