[python] stdout v subprocess

"Ing. Vladislav Ludík" vlada na ludik.cz
Sobota Říjen 27 12:58:18 CEST 2012


Ahoj, poradí někdo se získáním výstupu při použití subprocess ?

Příklad:

Soubor je uložen na vzdáleném serveru na sambě = zdroj. Chci jej načíst 
a uložit u sebe na mém serveru = cíl.

Používám následující skript:

/import subprocess

def ctiSambu(zdroj, cil):
    'Samba -> Server'
   
    command = [       
        'sshpass',
        '-p', 'heslo',
        'scp',
        '-P', '9999',
        '-o', 'StrictHostKeyChecking=no',
        '-o', 'UserKnownHostsFile=/dev/null',
        '-o', 'LogLevel=ERROR',
        'root na server.domena.cz:/home/samba/disk/%s' % zdroj,
        cil
        ]
    prg = subprocess.Popen(command, shell=False, stdout=subprocess.PIPE)
    return prg.wait()

zdroj = 'cteny_soubor'
cil = 'uloziste'

status = //ctiSambu(zdroj, cil)

if status != 0:
    print 'nejaka chyba'
//
/Chyba vznikne například zadáním neexistujícího souboru apod.
Můj dotaz se týká zjištění, jaká chyba způsobila nenulový status.
Chybová zpráva se sice vypíše na konzolu, ale já ji však potřebuju pro 
další zpracování mít v proměnné.

Poradí mi někdo ?


Další informace o konferenci Python