

Пока один вопрос...

Код: Выделить всё
>>> import os
>>> fout = os.popen('ls *.txt')
>>> fout.readlines()
Скорей всего они пишет не в stdout а в stderr - надо или перенапрявлять вывод (wget file 2>&1) или открывать stderr (файловый дескриптор 2, а не 1)Serge_RUS писал(а):Когда я делаю fout = os.popen('wget somefile'), то он сразу начинает показыветь результат
И что? Читаем документацию:Strijar писал(а):А вот не факт - он может писать И в stdout И в stderr
Т.о., (fin, fout, ferr) = os.popen3('...') - имеем три файловых объекта, через один из которых можем передавать данные в подпроцесс, и два - из которых читам соотв. stdout и sdterr подпроцесса.popen3( cmd[, mode[, bufsize]])
Executes cmd as a sub-process. Returns the file objects (child_stdin, child_stdout, child_stderr). Availability: Macintosh, Unix, Windows. New in version 2.0.
А что мешает использовать f.readlines() в цикле? Или ограничивать каждый read некоторым количеством байт, например, f.read(1024)? Первый вариант лучше подходит для текстовых данных.Serge_RUS писал(а):В любом случае есть проблемы... Например: пока выполняется f.read() программа зависает и не отображает статус загрузки wget'а. Хотя должна выводит в кутопийное текстовое поле.
ммм... может, все-таки, документацию почитать?Serge_RUS писал(а):Хм... А как тогда реализовать дозапихивание инфы в мультилайновое текстовое поле?