gentoo, медицина, python

Доброго времени суток, уважаемые.

Понимаю, вопрос немного не по теме форума, но знаю, что здесь есть те, кто знает питон.

Есть желание переписать кое-какие медицинские программки для работы в линукс (программки для снятия показаний с некоторых приборов). Некоторые части уже переписываются на Си. Проблема в том, что практически все эти части консольные и работать с ними пока нельзя, потому как никакой интерактивности нет. Поэтому возникло желание нарисовать оболочку для сего (а заодно и что-то новое изучить :)). Начал читать и изучать питон. Есть некоторые вопросы по нему:

1: Есть директория, в ней может быть несколько поддиректорий в них файлы "*.elog". Нужно обойти все директории и собрать все имена (с полными путями). как это сделать?

2: вызываю процесс

s0, s1, s2 = os.popen3("analizer /data/0001/20080106/001.elog")

теперь этот анализер пишет на s1 то, что откопал, на S2 ошибки. А как мне сделать, чтобы следить за s1 и s2 одновременно?
ну то есть если я сделаю s1.readline() и в это время что-то придет на s2 то я это пропущу и вообще зависну. Кстати по поводу "зависну" 3 вопрос:

3: как ограничить время ожидания readline?

На сим пока все.

Заранее спасибо.

PS: сильно не ругайтесь, я раньше вообще ни на чем не программировал. :) если уж совсем против правил такие вопросы тут, то может подскажите форум, где помогут?

Как вариант:proc

Как вариант:

proc = popen2.Popen4(command)                                                                                                              
filedescr = proc.fromchild.fileno()                                                                                                        
fcntl.fcntl(filedescr, fcntl.F_SETFL, os.O_NONBLOCK)

и в цикле...

line = proc.fromchild.readline()

тут блокировки не будет. Но это не все проблемы, есть ещё буферизация в пайпах, что для интерактивности и синхронности вредно, лучше поискать на форумах по пайтону. Здесь: http://python.com.ua/forum/ например, и поиск, сразу в поиск.

Вот, например: http://python.com.ua/forum/viewtopic.php?id=1470

prof-alex Спасибо

prof-alex Спасибо за ссылку на форум :)

а вот proc = popen2.Popen4(command) что-то не понял :(

>>> proc = os.popen2.Popen4('ls -la')
Traceback (most recent call last):
File "", line 1, in ?
AttributeError: 'function' object has no attribute 'Popen4'

1) find -name '*.elog' 2)

1) find -name '*.elog'
2) "analizer /data/0001/20080106/001.elog 2>&1" +
http://www.google.com/search?q=%222%3E%261%22

Цитата:
я раньше вообще ни на чем не программировал

Это у вас "Есть желание переписать"? Это вы "некоторые части уже переписываете на Си"?

Части на Си

Части на Си переписываю не я.

обход директорий

1.

import os, re
elogs = []
for root, dirs, files in os.walk('.'):
elogs += map(lambda x: os.path.join(root.x), filter(lambda x: re.match("^.*.elog$", x) and x, files))

OpenVista CIS

Вы это видели http://openvista.sourceforge.net/
Может стоит Вам с ними попобщатся?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".