PDA

Visualizza la versione completa : [PYTHON] Risultato di subprocess


fermat
15-04-2018, 11:37
ciao!

devo eseguire un comando shell da python3.
sto provando subprocess, sia con run che con call:


import subprocess

print(subprocess.run(['apropos', '.']))
print(subprocess.call('apropos .', shell=True))


funzionano entrambi, ma:

la funzione run mi aggiunge questa riga alla fine dell'output: CompletedProcess(args=['apropos', '.'], returncode=0)
mentre la funzione call mi aggiunge una riga con 0

dato che poi dovrei processare questo output, vorrei eliminare la riga finale che viene aggiunta dalle funzioni.
č possibile??

clasku
15-04-2018, 22:17
Hai provato con subprocess.check_output()?

fermat
16-04-2018, 09:10
ciao!

alla fine ho fatto cosė per iterare su tutte le righe:



import subprocess
import io

proc = subprocess.Popen(['apropos', '-s', '1', '.'], stdout=subprocess.PIPE)
for line in io.TextIOWrapper(proc.stdout, encoding="utf-8"):
print(line)

Loading