Найти - Пользователи
Полная версия: Как перехватить сообщения операционной системы?
Начало » Python для экспертов » Как перехватить сообщения операционной системы?
1
Вут
Как перехватить сообщения операционной системы при передачи команды на выполнение? Например:

os.system(“некая_комманда”)

система ругается, что такой комманды нет…. (не python ругается, а операционка)
как перехватить это сообщение?

try-except - не подходит, т.к. с точки зрения интерпретатора все ОК - комманда передана на выполнение системе.

Что посоветуете?
Maximbo
Вут
Как перехватить сообщения операционной системы при передачи команды на выполнение? Например:

os.system(“некая_комманда”)

система ругается, что такой комманды нет…. (не python ругается, а операционка)
как перехватить это сообщение?

try-except - не подходит, т.к. с точки зрения интерпретатора все ОК - комманда передана на выполнение системе.

Что посоветуете?
Теоретически, systems() возвращает код завершения выполненной программы. Теоретически, если он отличен от 0 – возникла ошибка (в Unix так). За это можно зацепиться.

Гляньте так же на Popen. С его помощью можно анализировать вывод stdout запускаемой проги.
tabajara
import os
s = os.system("ls -l")
print s
s = os.system("lsdhdj")
print s
Але Popen модніше )))
Maximbo
tabajara:
Функциональность различная. И, учитывая наличие секции Replacing Older Functions with the subprocess Module в документации, я бы повнимательнее присмотрелся к Popen.

Обратите внимание на возвращаемое значение и исходный вопрос:
>>> print os.system.__doc__
system(command) -> exit_status

Execute the command (a string) in a subshell.
Вут
Спасибо огромное!
os.system - пойдёт для начала
Покапаюсь ещё с popen.

Спасибо
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