Python - захват сообщения со стандартного выхода - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть программа, которая проверяет файлы Raw. Когда файл Raw поврежден, я получаю сообщение на консоли. Я хотел бы захватить это сообщение.

Сообщение, когда файл поврежден: /Volumes/64GB/CheckRawFiles/IMG_0409.CR2: данные повреждены в 9961503 Это сообщение на консоли я хотел бы захватить в переменной.

#!/usr/bin/env python3

import rawpy
import imageio
import os

def IsRawFile(pFileName):
    fName, x, ext = pFileName.rpartition('.')
    ok = False
    ext = ext.lower()
    if (ext in ['nef', 'cr2', 'arw']) and fName[0] != '.':
        ok = True
    return ok

if __name__ == '__main__':

    pPath  = '/Volumes/64GB/CheckRawFiles/'
    for root, subdirs, files in os.walk(pPath):
        for filename in files:  
            if IsRawFile(filename):
                print (filename)
                raw = rawpy.imread(os.path.join(root, filename))
                rgb = raw.postprocess()
                # --> message when file is corrupted: 
                # /Volumes/64GB/CheckRawFiles/IMG_0409.CR2: data corrupted at 9961503
                # this message on console I would like to capture
                raw.close()
...