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

import os
os.system('. /home/user/cpuinfo')
slivlen
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.
Muslim
goblin_maks
точно не уверен ..но попробуй через:

import os
os.system('. /home/user/cpuinfo')
Спасибо. Как раз то что нужно. Еще раз спасибо.
Muslim
slivlen
http://www.python.org/doc/2.5/lib/module-subprocess.html
Вообщем-то если не перенаправлять и не закрывать stdout и stderr дочернего процесса в котором будут выполнятся скрипты, то ничего перенаправлять и не надо будет, тк они по-умолчанию унаследуют stdout и stderr родительского процесса, а он уже связан с /dev/tty или /dev/pty.
Пища для размышления. Благодарю.
Muslim
Следом очередной вопрос - как послать в тот же терминал скажем Ctrl+C или Ctrl+D ну да любую последовательность. Может у кого есть прямая ссылка или в голове завалялось? Очень помогло бы.
slivlen
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
Muslim
Всем спасибо. Помогли.
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