Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2007 08:12:29

Вут
От:
Зарегистрирован: 2007-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перехватить сообщения операционной системы?

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

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

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

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

Что посоветуете?



Офлайн

#2 Май 31, 2007 08:42:46

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перехватить сообщения операционной системы?

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

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

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

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

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

Гляньте так же на Popen. С его помощью можно анализировать вывод stdout запускаемой проги.



Офлайн

#3 Май 31, 2007 11:18:27

tabajara
От:
Зарегистрирован: 2007-01-02
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перехватить сообщения операционной системы?

import os
s = os.system("ls -l")
print s
s = os.system("lsdhdj")
print s
Але Popen модніше )))



Отредактировано (Май 31, 2007 11:20:20)

Офлайн

#4 Май 31, 2007 14:28:10

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перехватить сообщения операционной системы?

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.



Офлайн

#5 Июнь 14, 2007 20:41:40

Вут
От:
Зарегистрирован: 2007-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перехватить сообщения операционной системы?

Спасибо огромное!
os.system - пойдёт для начала
Покапаюсь ещё с popen.

Спасибо



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version